

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.01.0628 */
/* at Tue Jan 19 11:14:07 2038
 */
/* Compiler settings for ..\..\..\..\..\Drawing\Extensions\win\gcax\gxdb.idl:
    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0628 
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */



/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */


#ifndef __gxdb_h__
#define __gxdb_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

#ifndef DECLSPEC_XFGVIRT
#if defined(_CONTROL_FLOW_GUARD_XFG)
#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))
#else
#define DECLSPEC_XFGVIRT(base, func)
#endif
#endif

/* Forward Declarations */ 

#ifndef __IGcadObject_FWD_DEFINED__
#define __IGcadObject_FWD_DEFINED__
typedef interface IGcadObject IGcadObject;

#endif 	/* __IGcadObject_FWD_DEFINED__ */


#ifndef __IGcadDatabase_FWD_DEFINED__
#define __IGcadDatabase_FWD_DEFINED__
typedef interface IGcadDatabase IGcadDatabase;

#endif 	/* __IGcadDatabase_FWD_DEFINED__ */


#ifndef __IGcadBlock_FWD_DEFINED__
#define __IGcadBlock_FWD_DEFINED__
typedef interface IGcadBlock IGcadBlock;

#endif 	/* __IGcadBlock_FWD_DEFINED__ */


#ifndef __IGcadModelSpace_FWD_DEFINED__
#define __IGcadModelSpace_FWD_DEFINED__
typedef interface IGcadModelSpace IGcadModelSpace;

#endif 	/* __IGcadModelSpace_FWD_DEFINED__ */


#ifndef __IGcadEntity_FWD_DEFINED__
#define __IGcadEntity_FWD_DEFINED__
typedef interface IGcadEntity IGcadEntity;

#endif 	/* __IGcadEntity_FWD_DEFINED__ */


#ifndef __IGcadGcCmColor_FWD_DEFINED__
#define __IGcadGcCmColor_FWD_DEFINED__
typedef interface IGcadGcCmColor IGcadGcCmColor;

#endif 	/* __IGcadGcCmColor_FWD_DEFINED__ */


#ifndef __IGcadHyperlinks_FWD_DEFINED__
#define __IGcadHyperlinks_FWD_DEFINED__
typedef interface IGcadHyperlinks IGcadHyperlinks;

#endif 	/* __IGcadHyperlinks_FWD_DEFINED__ */


#ifndef __IGcadHyperlink_FWD_DEFINED__
#define __IGcadHyperlink_FWD_DEFINED__
typedef interface IGcadHyperlink IGcadHyperlink;

#endif 	/* __IGcadHyperlink_FWD_DEFINED__ */


#ifndef __IGcad3DFace_FWD_DEFINED__
#define __IGcad3DFace_FWD_DEFINED__
typedef interface IGcad3DFace IGcad3DFace;

#endif 	/* __IGcad3DFace_FWD_DEFINED__ */


#ifndef __IGcadPolygonMesh_FWD_DEFINED__
#define __IGcadPolygonMesh_FWD_DEFINED__
typedef interface IGcadPolygonMesh IGcadPolygonMesh;

#endif 	/* __IGcadPolygonMesh_FWD_DEFINED__ */


#ifndef __IGcad3DPolyline_FWD_DEFINED__
#define __IGcad3DPolyline_FWD_DEFINED__
typedef interface IGcad3DPolyline IGcad3DPolyline;

#endif 	/* __IGcad3DPolyline_FWD_DEFINED__ */


#ifndef __IGcadArc_FWD_DEFINED__
#define __IGcadArc_FWD_DEFINED__
typedef interface IGcadArc IGcadArc;

#endif 	/* __IGcadArc_FWD_DEFINED__ */


#ifndef __IGcadAttribute_FWD_DEFINED__
#define __IGcadAttribute_FWD_DEFINED__
typedef interface IGcadAttribute IGcadAttribute;

#endif 	/* __IGcadAttribute_FWD_DEFINED__ */


#ifndef __IGcad3DSolid_FWD_DEFINED__
#define __IGcad3DSolid_FWD_DEFINED__
typedef interface IGcad3DSolid IGcad3DSolid;

#endif 	/* __IGcad3DSolid_FWD_DEFINED__ */


#ifndef __IGcadRegion_FWD_DEFINED__
#define __IGcadRegion_FWD_DEFINED__
typedef interface IGcadRegion IGcadRegion;

#endif 	/* __IGcadRegion_FWD_DEFINED__ */


#ifndef __IGcadCircle_FWD_DEFINED__
#define __IGcadCircle_FWD_DEFINED__
typedef interface IGcadCircle IGcadCircle;

#endif 	/* __IGcadCircle_FWD_DEFINED__ */


#ifndef __IGcadDimension_FWD_DEFINED__
#define __IGcadDimension_FWD_DEFINED__
typedef interface IGcadDimension IGcadDimension;

#endif 	/* __IGcadDimension_FWD_DEFINED__ */


#ifndef __IGcadDimAligned_FWD_DEFINED__
#define __IGcadDimAligned_FWD_DEFINED__
typedef interface IGcadDimAligned IGcadDimAligned;

#endif 	/* __IGcadDimAligned_FWD_DEFINED__ */


#ifndef __IGcadDimAngular_FWD_DEFINED__
#define __IGcadDimAngular_FWD_DEFINED__
typedef interface IGcadDimAngular IGcadDimAngular;

#endif 	/* __IGcadDimAngular_FWD_DEFINED__ */


#ifndef __IGcadDimDiametric_FWD_DEFINED__
#define __IGcadDimDiametric_FWD_DEFINED__
typedef interface IGcadDimDiametric IGcadDimDiametric;

#endif 	/* __IGcadDimDiametric_FWD_DEFINED__ */


#ifndef __IGcadDimRotated_FWD_DEFINED__
#define __IGcadDimRotated_FWD_DEFINED__
typedef interface IGcadDimRotated IGcadDimRotated;

#endif 	/* __IGcadDimRotated_FWD_DEFINED__ */


#ifndef __IGcadDimOrdinate_FWD_DEFINED__
#define __IGcadDimOrdinate_FWD_DEFINED__
typedef interface IGcadDimOrdinate IGcadDimOrdinate;

#endif 	/* __IGcadDimOrdinate_FWD_DEFINED__ */


#ifndef __IGcadDimRadial_FWD_DEFINED__
#define __IGcadDimRadial_FWD_DEFINED__
typedef interface IGcadDimRadial IGcadDimRadial;

#endif 	/* __IGcadDimRadial_FWD_DEFINED__ */


#ifndef __IGcadEllipse_FWD_DEFINED__
#define __IGcadEllipse_FWD_DEFINED__
typedef interface IGcadEllipse IGcadEllipse;

#endif 	/* __IGcadEllipse_FWD_DEFINED__ */


#ifndef __IGcadLeader_FWD_DEFINED__
#define __IGcadLeader_FWD_DEFINED__
typedef interface IGcadLeader IGcadLeader;

#endif 	/* __IGcadLeader_FWD_DEFINED__ */


#ifndef __IGcadMText_FWD_DEFINED__
#define __IGcadMText_FWD_DEFINED__
typedef interface IGcadMText IGcadMText;

#endif 	/* __IGcadMText_FWD_DEFINED__ */


#ifndef __IGcadPoint_FWD_DEFINED__
#define __IGcadPoint_FWD_DEFINED__
typedef interface IGcadPoint IGcadPoint;

#endif 	/* __IGcadPoint_FWD_DEFINED__ */


#ifndef __IGcadLWPolyline_FWD_DEFINED__
#define __IGcadLWPolyline_FWD_DEFINED__
typedef interface IGcadLWPolyline IGcadLWPolyline;

#endif 	/* __IGcadLWPolyline_FWD_DEFINED__ */


#ifndef __IGcadPolyline_FWD_DEFINED__
#define __IGcadPolyline_FWD_DEFINED__
typedef interface IGcadPolyline IGcadPolyline;

#endif 	/* __IGcadPolyline_FWD_DEFINED__ */


#ifndef __IGcadRay_FWD_DEFINED__
#define __IGcadRay_FWD_DEFINED__
typedef interface IGcadRay IGcadRay;

#endif 	/* __IGcadRay_FWD_DEFINED__ */


#ifndef __IGcadShape_FWD_DEFINED__
#define __IGcadShape_FWD_DEFINED__
typedef interface IGcadShape IGcadShape;

#endif 	/* __IGcadShape_FWD_DEFINED__ */


#ifndef __IGcadSolid_FWD_DEFINED__
#define __IGcadSolid_FWD_DEFINED__
typedef interface IGcadSolid IGcadSolid;

#endif 	/* __IGcadSolid_FWD_DEFINED__ */


#ifndef __IGcadSpline_FWD_DEFINED__
#define __IGcadSpline_FWD_DEFINED__
typedef interface IGcadSpline IGcadSpline;

#endif 	/* __IGcadSpline_FWD_DEFINED__ */


#ifndef __IGcadText_FWD_DEFINED__
#define __IGcadText_FWD_DEFINED__
typedef interface IGcadText IGcadText;

#endif 	/* __IGcadText_FWD_DEFINED__ */


#ifndef __IGcadTolerance_FWD_DEFINED__
#define __IGcadTolerance_FWD_DEFINED__
typedef interface IGcadTolerance IGcadTolerance;

#endif 	/* __IGcadTolerance_FWD_DEFINED__ */


#ifndef __IGcadTrace_FWD_DEFINED__
#define __IGcadTrace_FWD_DEFINED__
typedef interface IGcadTrace IGcadTrace;

#endif 	/* __IGcadTrace_FWD_DEFINED__ */


#ifndef __IGcadXline_FWD_DEFINED__
#define __IGcadXline_FWD_DEFINED__
typedef interface IGcadXline IGcadXline;

#endif 	/* __IGcadXline_FWD_DEFINED__ */


#ifndef __IGcadBlockReference_FWD_DEFINED__
#define __IGcadBlockReference_FWD_DEFINED__
typedef interface IGcadBlockReference IGcadBlockReference;

#endif 	/* __IGcadBlockReference_FWD_DEFINED__ */


#ifndef __IGcadHatch_FWD_DEFINED__
#define __IGcadHatch_FWD_DEFINED__
typedef interface IGcadHatch IGcadHatch;

#endif 	/* __IGcadHatch_FWD_DEFINED__ */


#ifndef __IGcadRasterImage_FWD_DEFINED__
#define __IGcadRasterImage_FWD_DEFINED__
typedef interface IGcadRasterImage IGcadRasterImage;

#endif 	/* __IGcadRasterImage_FWD_DEFINED__ */


#ifndef __IGcadLine_FWD_DEFINED__
#define __IGcadLine_FWD_DEFINED__
typedef interface IGcadLine IGcadLine;

#endif 	/* __IGcadLine_FWD_DEFINED__ */


#ifndef __IGcadPlotConfiguration_FWD_DEFINED__
#define __IGcadPlotConfiguration_FWD_DEFINED__
typedef interface IGcadPlotConfiguration IGcadPlotConfiguration;

#endif 	/* __IGcadPlotConfiguration_FWD_DEFINED__ */


#ifndef __IGcadLayout_FWD_DEFINED__
#define __IGcadLayout_FWD_DEFINED__
typedef interface IGcadLayout IGcadLayout;

#endif 	/* __IGcadLayout_FWD_DEFINED__ */


#ifndef __IGcadMInsertBlock_FWD_DEFINED__
#define __IGcadMInsertBlock_FWD_DEFINED__
typedef interface IGcadMInsertBlock IGcadMInsertBlock;

#endif 	/* __IGcadMInsertBlock_FWD_DEFINED__ */


#ifndef __IGcadPolyfaceMesh_FWD_DEFINED__
#define __IGcadPolyfaceMesh_FWD_DEFINED__
typedef interface IGcadPolyfaceMesh IGcadPolyfaceMesh;

#endif 	/* __IGcadPolyfaceMesh_FWD_DEFINED__ */


#ifndef __IGcadMLine_FWD_DEFINED__
#define __IGcadMLine_FWD_DEFINED__
typedef interface IGcadMLine IGcadMLine;

#endif 	/* __IGcadMLine_FWD_DEFINED__ */


#ifndef __IGcadDim3PointAngular_FWD_DEFINED__
#define __IGcadDim3PointAngular_FWD_DEFINED__
typedef interface IGcadDim3PointAngular IGcadDim3PointAngular;

#endif 	/* __IGcadDim3PointAngular_FWD_DEFINED__ */


#ifndef __IGcadExternalReference_FWD_DEFINED__
#define __IGcadExternalReference_FWD_DEFINED__
typedef interface IGcadExternalReference IGcadExternalReference;

#endif 	/* __IGcadExternalReference_FWD_DEFINED__ */


#ifndef __IGcadTable_FWD_DEFINED__
#define __IGcadTable_FWD_DEFINED__
typedef interface IGcadTable IGcadTable;

#endif 	/* __IGcadTable_FWD_DEFINED__ */


#ifndef __IGcadDimArcLength_FWD_DEFINED__
#define __IGcadDimArcLength_FWD_DEFINED__
typedef interface IGcadDimArcLength IGcadDimArcLength;

#endif 	/* __IGcadDimArcLength_FWD_DEFINED__ */


#ifndef __IGcadDimRadialLarge_FWD_DEFINED__
#define __IGcadDimRadialLarge_FWD_DEFINED__
typedef interface IGcadDimRadialLarge IGcadDimRadialLarge;

#endif 	/* __IGcadDimRadialLarge_FWD_DEFINED__ */


#ifndef __IGcadSection_FWD_DEFINED__
#define __IGcadSection_FWD_DEFINED__
typedef interface IGcadSection IGcadSection;

#endif 	/* __IGcadSection_FWD_DEFINED__ */


#ifndef __IGcadSectionSettings_FWD_DEFINED__
#define __IGcadSectionSettings_FWD_DEFINED__
typedef interface IGcadSectionSettings IGcadSectionSettings;

#endif 	/* __IGcadSectionSettings_FWD_DEFINED__ */


#ifndef __IGcadSectionTypeSettings_FWD_DEFINED__
#define __IGcadSectionTypeSettings_FWD_DEFINED__
typedef interface IGcadSectionTypeSettings IGcadSectionTypeSettings;

#endif 	/* __IGcadSectionTypeSettings_FWD_DEFINED__ */


#ifndef __IGcadMLeader_FWD_DEFINED__
#define __IGcadMLeader_FWD_DEFINED__
typedef interface IGcadMLeader IGcadMLeader;

#endif 	/* __IGcadMLeader_FWD_DEFINED__ */


#ifndef __IGcadPaperSpace_FWD_DEFINED__
#define __IGcadPaperSpace_FWD_DEFINED__
typedef interface IGcadPaperSpace IGcadPaperSpace;

#endif 	/* __IGcadPaperSpace_FWD_DEFINED__ */


#ifndef __IGcadPViewport_FWD_DEFINED__
#define __IGcadPViewport_FWD_DEFINED__
typedef interface IGcadPViewport IGcadPViewport;

#endif 	/* __IGcadPViewport_FWD_DEFINED__ */


#ifndef __IGcadView_FWD_DEFINED__
#define __IGcadView_FWD_DEFINED__
typedef interface IGcadView IGcadView;

#endif 	/* __IGcadView_FWD_DEFINED__ */


#ifndef __IGcadBlocks_FWD_DEFINED__
#define __IGcadBlocks_FWD_DEFINED__
typedef interface IGcadBlocks IGcadBlocks;

#endif 	/* __IGcadBlocks_FWD_DEFINED__ */


#ifndef __IGcadGroups_FWD_DEFINED__
#define __IGcadGroups_FWD_DEFINED__
typedef interface IGcadGroups IGcadGroups;

#endif 	/* __IGcadGroups_FWD_DEFINED__ */


#ifndef __IGcadGroup_FWD_DEFINED__
#define __IGcadGroup_FWD_DEFINED__
typedef interface IGcadGroup IGcadGroup;

#endif 	/* __IGcadGroup_FWD_DEFINED__ */


#ifndef __IGcadDimStyles_FWD_DEFINED__
#define __IGcadDimStyles_FWD_DEFINED__
typedef interface IGcadDimStyles IGcadDimStyles;

#endif 	/* __IGcadDimStyles_FWD_DEFINED__ */


#ifndef __IGcadDimStyle_FWD_DEFINED__
#define __IGcadDimStyle_FWD_DEFINED__
typedef interface IGcadDimStyle IGcadDimStyle;

#endif 	/* __IGcadDimStyle_FWD_DEFINED__ */


#ifndef __IGcadLayers_FWD_DEFINED__
#define __IGcadLayers_FWD_DEFINED__
typedef interface IGcadLayers IGcadLayers;

#endif 	/* __IGcadLayers_FWD_DEFINED__ */


#ifndef __IGcadLayer_FWD_DEFINED__
#define __IGcadLayer_FWD_DEFINED__
typedef interface IGcadLayer IGcadLayer;

#endif 	/* __IGcadLayer_FWD_DEFINED__ */


#ifndef __IGcadLineTypes_FWD_DEFINED__
#define __IGcadLineTypes_FWD_DEFINED__
typedef interface IGcadLineTypes IGcadLineTypes;

#endif 	/* __IGcadLineTypes_FWD_DEFINED__ */


#ifndef __IGcadLineType_FWD_DEFINED__
#define __IGcadLineType_FWD_DEFINED__
typedef interface IGcadLineType IGcadLineType;

#endif 	/* __IGcadLineType_FWD_DEFINED__ */


#ifndef __IGcadDictionaries_FWD_DEFINED__
#define __IGcadDictionaries_FWD_DEFINED__
typedef interface IGcadDictionaries IGcadDictionaries;

#endif 	/* __IGcadDictionaries_FWD_DEFINED__ */


#ifndef __IGcadDictionary_FWD_DEFINED__
#define __IGcadDictionary_FWD_DEFINED__
typedef interface IGcadDictionary IGcadDictionary;

#endif 	/* __IGcadDictionary_FWD_DEFINED__ */


#ifndef __IGcadXRecord_FWD_DEFINED__
#define __IGcadXRecord_FWD_DEFINED__
typedef interface IGcadXRecord IGcadXRecord;

#endif 	/* __IGcadXRecord_FWD_DEFINED__ */


#ifndef __IGcadRegisteredApplications_FWD_DEFINED__
#define __IGcadRegisteredApplications_FWD_DEFINED__
typedef interface IGcadRegisteredApplications IGcadRegisteredApplications;

#endif 	/* __IGcadRegisteredApplications_FWD_DEFINED__ */


#ifndef __IGcadRegisteredApplication_FWD_DEFINED__
#define __IGcadRegisteredApplication_FWD_DEFINED__
typedef interface IGcadRegisteredApplication IGcadRegisteredApplication;

#endif 	/* __IGcadRegisteredApplication_FWD_DEFINED__ */


#ifndef __IGcadTextStyles_FWD_DEFINED__
#define __IGcadTextStyles_FWD_DEFINED__
typedef interface IGcadTextStyles IGcadTextStyles;

#endif 	/* __IGcadTextStyles_FWD_DEFINED__ */


#ifndef __IGcadTextStyle_FWD_DEFINED__
#define __IGcadTextStyle_FWD_DEFINED__
typedef interface IGcadTextStyle IGcadTextStyle;

#endif 	/* __IGcadTextStyle_FWD_DEFINED__ */


#ifndef __IGcadUCSs_FWD_DEFINED__
#define __IGcadUCSs_FWD_DEFINED__
typedef interface IGcadUCSs IGcadUCSs;

#endif 	/* __IGcadUCSs_FWD_DEFINED__ */


#ifndef __IGcadUCS_FWD_DEFINED__
#define __IGcadUCS_FWD_DEFINED__
typedef interface IGcadUCS IGcadUCS;

#endif 	/* __IGcadUCS_FWD_DEFINED__ */


#ifndef __IGcadViews_FWD_DEFINED__
#define __IGcadViews_FWD_DEFINED__
typedef interface IGcadViews IGcadViews;

#endif 	/* __IGcadViews_FWD_DEFINED__ */


#ifndef __IGcadViewports_FWD_DEFINED__
#define __IGcadViewports_FWD_DEFINED__
typedef interface IGcadViewports IGcadViewports;

#endif 	/* __IGcadViewports_FWD_DEFINED__ */


#ifndef __IGcadViewport_FWD_DEFINED__
#define __IGcadViewport_FWD_DEFINED__
typedef interface IGcadViewport IGcadViewport;

#endif 	/* __IGcadViewport_FWD_DEFINED__ */


#ifndef __IGcadLayouts_FWD_DEFINED__
#define __IGcadLayouts_FWD_DEFINED__
typedef interface IGcadLayouts IGcadLayouts;

#endif 	/* __IGcadLayouts_FWD_DEFINED__ */


#ifndef __IGcadPlotConfigurations_FWD_DEFINED__
#define __IGcadPlotConfigurations_FWD_DEFINED__
typedef interface IGcadPlotConfigurations IGcadPlotConfigurations;

#endif 	/* __IGcadPlotConfigurations_FWD_DEFINED__ */


#ifndef __IGcadDatabasePreferences_FWD_DEFINED__
#define __IGcadDatabasePreferences_FWD_DEFINED__
typedef interface IGcadDatabasePreferences IGcadDatabasePreferences;

#endif 	/* __IGcadDatabasePreferences_FWD_DEFINED__ */


#ifndef __IGcadSummaryInfo_FWD_DEFINED__
#define __IGcadSummaryInfo_FWD_DEFINED__
typedef interface IGcadSummaryInfo IGcadSummaryInfo;

#endif 	/* __IGcadSummaryInfo_FWD_DEFINED__ */


#ifndef __IGcadSectionManager_FWD_DEFINED__
#define __IGcadSectionManager_FWD_DEFINED__
typedef interface IGcadSectionManager IGcadSectionManager;

#endif 	/* __IGcadSectionManager_FWD_DEFINED__ */


#ifndef __IGcadMaterials_FWD_DEFINED__
#define __IGcadMaterials_FWD_DEFINED__
typedef interface IGcadMaterials IGcadMaterials;

#endif 	/* __IGcadMaterials_FWD_DEFINED__ */


#ifndef __IGcadMaterial_FWD_DEFINED__
#define __IGcadMaterial_FWD_DEFINED__
typedef interface IGcadMaterial IGcadMaterial;

#endif 	/* __IGcadMaterial_FWD_DEFINED__ */


#ifndef __IGcadSectionTypeSettings2_FWD_DEFINED__
#define __IGcadSectionTypeSettings2_FWD_DEFINED__
typedef interface IGcadSectionTypeSettings2 IGcadSectionTypeSettings2;

#endif 	/* __IGcadSectionTypeSettings2_FWD_DEFINED__ */


#ifndef __IGcadDynamicBlockReferenceProperty_FWD_DEFINED__
#define __IGcadDynamicBlockReferenceProperty_FWD_DEFINED__
typedef interface IGcadDynamicBlockReferenceProperty IGcadDynamicBlockReferenceProperty;

#endif 	/* __IGcadDynamicBlockReferenceProperty_FWD_DEFINED__ */


#ifndef __IGcadObjectEvents_FWD_DEFINED__
#define __IGcadObjectEvents_FWD_DEFINED__
typedef interface IGcadObjectEvents IGcadObjectEvents;

#endif 	/* __IGcadObjectEvents_FWD_DEFINED__ */


#ifndef __IGcadSortentsTable_FWD_DEFINED__
#define __IGcadSortentsTable_FWD_DEFINED__
typedef interface IGcadSortentsTable IGcadSortentsTable;

#endif 	/* __IGcadSortentsTable_FWD_DEFINED__ */


#ifndef __IGcadIdPair_FWD_DEFINED__
#define __IGcadIdPair_FWD_DEFINED__
typedef interface IGcadIdPair IGcadIdPair;

#endif 	/* __IGcadIdPair_FWD_DEFINED__ */


#ifndef __IGcadTableStyle_FWD_DEFINED__
#define __IGcadTableStyle_FWD_DEFINED__
typedef interface IGcadTableStyle IGcadTableStyle;

#endif 	/* __IGcadTableStyle_FWD_DEFINED__ */


#ifndef __IGcadMLeaderStyle_FWD_DEFINED__
#define __IGcadMLeaderStyle_FWD_DEFINED__
typedef interface IGcadMLeaderStyle IGcadMLeaderStyle;

#endif 	/* __IGcadMLeaderStyle_FWD_DEFINED__ */


#ifndef __IGcadShadowDisplay_FWD_DEFINED__
#define __IGcadShadowDisplay_FWD_DEFINED__
typedef interface IGcadShadowDisplay IGcadShadowDisplay;

#endif 	/* __IGcadShadowDisplay_FWD_DEFINED__ */


#ifndef __IGcadAttributeReference_FWD_DEFINED__
#define __IGcadAttributeReference_FWD_DEFINED__
typedef interface IGcadAttributeReference IGcadAttributeReference;

#endif 	/* __IGcadAttributeReference_FWD_DEFINED__ */


#ifndef __IGcadSubEntity_FWD_DEFINED__
#define __IGcadSubEntity_FWD_DEFINED__
typedef interface IGcadSubEntity IGcadSubEntity;

#endif 	/* __IGcadSubEntity_FWD_DEFINED__ */


#ifndef __IGcadMLeaderLeader_FWD_DEFINED__
#define __IGcadMLeaderLeader_FWD_DEFINED__
typedef interface IGcadMLeaderLeader IGcadMLeaderLeader;

#endif 	/* __IGcadMLeaderLeader_FWD_DEFINED__ */


#ifndef __IGcadComparedReference_FWD_DEFINED__
#define __IGcadComparedReference_FWD_DEFINED__
typedef interface IGcadComparedReference IGcadComparedReference;

#endif 	/* __IGcadComparedReference_FWD_DEFINED__ */


#ifndef __IGcadOle_FWD_DEFINED__
#define __IGcadOle_FWD_DEFINED__
typedef interface IGcadOle IGcadOle;

#endif 	/* __IGcadOle_FWD_DEFINED__ */


#ifndef __IGcadHelix_FWD_DEFINED__
#define __IGcadHelix_FWD_DEFINED__
typedef interface IGcadHelix IGcadHelix;

#endif 	/* __IGcadHelix_FWD_DEFINED__ */


#ifndef __IGcadSurface_FWD_DEFINED__
#define __IGcadSurface_FWD_DEFINED__
typedef interface IGcadSurface IGcadSurface;

#endif 	/* __IGcadSurface_FWD_DEFINED__ */


#ifndef __IGcadPlaneSurface_FWD_DEFINED__
#define __IGcadPlaneSurface_FWD_DEFINED__
typedef interface IGcadPlaneSurface IGcadPlaneSurface;

#endif 	/* __IGcadPlaneSurface_FWD_DEFINED__ */


#ifndef __IGcadExtrudedSurface_FWD_DEFINED__
#define __IGcadExtrudedSurface_FWD_DEFINED__
typedef interface IGcadExtrudedSurface IGcadExtrudedSurface;

#endif 	/* __IGcadExtrudedSurface_FWD_DEFINED__ */


#ifndef __IGcadRevolvedSurface_FWD_DEFINED__
#define __IGcadRevolvedSurface_FWD_DEFINED__
typedef interface IGcadRevolvedSurface IGcadRevolvedSurface;

#endif 	/* __IGcadRevolvedSurface_FWD_DEFINED__ */


#ifndef __IGcadSweptSurface_FWD_DEFINED__
#define __IGcadSweptSurface_FWD_DEFINED__
typedef interface IGcadSweptSurface IGcadSweptSurface;

#endif 	/* __IGcadSweptSurface_FWD_DEFINED__ */


#ifndef __IGcadLoftedSurface_FWD_DEFINED__
#define __IGcadLoftedSurface_FWD_DEFINED__
typedef interface IGcadLoftedSurface IGcadLoftedSurface;

#endif 	/* __IGcadLoftedSurface_FWD_DEFINED__ */


#ifndef __IGcadSection2_FWD_DEFINED__
#define __IGcadSection2_FWD_DEFINED__
typedef interface IGcadSection2 IGcadSection2;

#endif 	/* __IGcadSection2_FWD_DEFINED__ */


#ifndef __IGcadUnderlay_FWD_DEFINED__
#define __IGcadUnderlay_FWD_DEFINED__
typedef interface IGcadUnderlay IGcadUnderlay;

#endif 	/* __IGcadUnderlay_FWD_DEFINED__ */


#ifndef __IGcadDwfUnderlay_FWD_DEFINED__
#define __IGcadDwfUnderlay_FWD_DEFINED__
typedef interface IGcadDwfUnderlay IGcadDwfUnderlay;

#endif 	/* __IGcadDwfUnderlay_FWD_DEFINED__ */


#ifndef __IGcadSubEntSolidFace_FWD_DEFINED__
#define __IGcadSubEntSolidFace_FWD_DEFINED__
typedef interface IGcadSubEntSolidFace IGcadSubEntSolidFace;

#endif 	/* __IGcadSubEntSolidFace_FWD_DEFINED__ */


#ifndef __IGcadSubEntSolidEdge_FWD_DEFINED__
#define __IGcadSubEntSolidEdge_FWD_DEFINED__
typedef interface IGcadSubEntSolidEdge IGcadSubEntSolidEdge;

#endif 	/* __IGcadSubEntSolidEdge_FWD_DEFINED__ */


#ifndef __IGcadSubEntSolidVertex_FWD_DEFINED__
#define __IGcadSubEntSolidVertex_FWD_DEFINED__
typedef interface IGcadSubEntSolidVertex IGcadSubEntSolidVertex;

#endif 	/* __IGcadSubEntSolidVertex_FWD_DEFINED__ */


#ifndef __IGcadSubEntSolidNode_FWD_DEFINED__
#define __IGcadSubEntSolidNode_FWD_DEFINED__
typedef interface IGcadSubEntSolidNode IGcadSubEntSolidNode;

#endif 	/* __IGcadSubEntSolidNode_FWD_DEFINED__ */


#ifndef __IGcadWipeout_FWD_DEFINED__
#define __IGcadWipeout_FWD_DEFINED__
typedef interface IGcadWipeout IGcadWipeout;

#endif 	/* __IGcadWipeout_FWD_DEFINED__ */


#ifndef __IGcadSubDMesh_FWD_DEFINED__
#define __IGcadSubDMesh_FWD_DEFINED__
typedef interface IGcadSubDMesh IGcadSubDMesh;

#endif 	/* __IGcadSubDMesh_FWD_DEFINED__ */


#ifndef __IGcadSubDMeshFace_FWD_DEFINED__
#define __IGcadSubDMeshFace_FWD_DEFINED__
typedef interface IGcadSubDMeshFace IGcadSubDMeshFace;

#endif 	/* __IGcadSubDMeshFace_FWD_DEFINED__ */


#ifndef __IGcadSubDMeshEdge_FWD_DEFINED__
#define __IGcadSubDMeshEdge_FWD_DEFINED__
typedef interface IGcadSubDMeshEdge IGcadSubDMeshEdge;

#endif 	/* __IGcadSubDMeshEdge_FWD_DEFINED__ */


#ifndef __IGcadSubDMeshVertex_FWD_DEFINED__
#define __IGcadSubDMeshVertex_FWD_DEFINED__
typedef interface IGcadSubDMeshVertex IGcadSubDMeshVertex;

#endif 	/* __IGcadSubDMeshVertex_FWD_DEFINED__ */


#ifndef __IGcadNurbSurface_FWD_DEFINED__
#define __IGcadNurbSurface_FWD_DEFINED__
typedef interface IGcadNurbSurface IGcadNurbSurface;

#endif 	/* __IGcadNurbSurface_FWD_DEFINED__ */


#ifndef __IGcadGeoPositionMarker_FWD_DEFINED__
#define __IGcadGeoPositionMarker_FWD_DEFINED__
typedef interface IGcadGeoPositionMarker IGcadGeoPositionMarker;

#endif 	/* __IGcadGeoPositionMarker_FWD_DEFINED__ */


#ifndef __IGcadGeomapImage_FWD_DEFINED__
#define __IGcadGeomapImage_FWD_DEFINED__
typedef interface IGcadGeomapImage IGcadGeomapImage;

#endif 	/* __IGcadGeomapImage_FWD_DEFINED__ */


#ifndef __IGcadPointCloud_FWD_DEFINED__
#define __IGcadPointCloud_FWD_DEFINED__
typedef interface IGcadPointCloud IGcadPointCloud;

#endif 	/* __IGcadPointCloud_FWD_DEFINED__ */


#ifndef __IGcadPointCloudEx_FWD_DEFINED__
#define __IGcadPointCloudEx_FWD_DEFINED__
typedef interface IGcadPointCloudEx IGcadPointCloudEx;

#endif 	/* __IGcadPointCloudEx_FWD_DEFINED__ */


#ifndef __IGcadPointCloudEx2_FWD_DEFINED__
#define __IGcadPointCloudEx2_FWD_DEFINED__
typedef interface IGcadPointCloudEx2 IGcadPointCloudEx2;

#endif 	/* __IGcadPointCloudEx2_FWD_DEFINED__ */


#ifndef __IGcadSecurityParams_FWD_DEFINED__
#define __IGcadSecurityParams_FWD_DEFINED__
typedef interface IGcadSecurityParams IGcadSecurityParams;

#endif 	/* __IGcadSecurityParams_FWD_DEFINED__ */


#ifndef __IGcadLayerStateManager_FWD_DEFINED__
#define __IGcadLayerStateManager_FWD_DEFINED__
typedef interface IGcadLayerStateManager IGcadLayerStateManager;

#endif 	/* __IGcadLayerStateManager_FWD_DEFINED__ */


#ifndef __GcadBlock_FWD_DEFINED__
#define __GcadBlock_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadBlock GcadBlock;
#else
typedef struct GcadBlock GcadBlock;
#endif /* __cplusplus */

#endif 	/* __GcadBlock_FWD_DEFINED__ */


#ifndef __GcadHyperlink_FWD_DEFINED__
#define __GcadHyperlink_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadHyperlink GcadHyperlink;
#else
typedef struct GcadHyperlink GcadHyperlink;
#endif /* __cplusplus */

#endif 	/* __GcadHyperlink_FWD_DEFINED__ */


#ifndef __GcadDynamicBlockReferenceProperty_FWD_DEFINED__
#define __GcadDynamicBlockReferenceProperty_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDynamicBlockReferenceProperty GcadDynamicBlockReferenceProperty;
#else
typedef struct GcadDynamicBlockReferenceProperty GcadDynamicBlockReferenceProperty;
#endif /* __cplusplus */

#endif 	/* __GcadDynamicBlockReferenceProperty_FWD_DEFINED__ */


#ifndef __GcadAcCmColor_FWD_DEFINED__
#define __GcadAcCmColor_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadAcCmColor GcadAcCmColor;
#else
typedef struct GcadAcCmColor GcadAcCmColor;
#endif /* __cplusplus */

#endif 	/* __GcadAcCmColor_FWD_DEFINED__ */


#ifndef __GcadObject_FWD_DEFINED__
#define __GcadObject_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadObject GcadObject;
#else
typedef struct GcadObject GcadObject;
#endif /* __cplusplus */

#endif 	/* __GcadObject_FWD_DEFINED__ */


#ifndef __GcadXRecord_FWD_DEFINED__
#define __GcadXRecord_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadXRecord GcadXRecord;
#else
typedef struct GcadXRecord GcadXRecord;
#endif /* __cplusplus */

#endif 	/* __GcadXRecord_FWD_DEFINED__ */


#ifndef __GcadSortentsTable_FWD_DEFINED__
#define __GcadSortentsTable_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSortentsTable GcadSortentsTable;
#else
typedef struct GcadSortentsTable GcadSortentsTable;
#endif /* __cplusplus */

#endif 	/* __GcadSortentsTable_FWD_DEFINED__ */


#ifndef __GcadDimStyle_FWD_DEFINED__
#define __GcadDimStyle_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDimStyle GcadDimStyle;
#else
typedef struct GcadDimStyle GcadDimStyle;
#endif /* __cplusplus */

#endif 	/* __GcadDimStyle_FWD_DEFINED__ */


#ifndef __GcadLayer_FWD_DEFINED__
#define __GcadLayer_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadLayer GcadLayer;
#else
typedef struct GcadLayer GcadLayer;
#endif /* __cplusplus */

#endif 	/* __GcadLayer_FWD_DEFINED__ */


#ifndef __GcadLineType_FWD_DEFINED__
#define __GcadLineType_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadLineType GcadLineType;
#else
typedef struct GcadLineType GcadLineType;
#endif /* __cplusplus */

#endif 	/* __GcadLineType_FWD_DEFINED__ */


#ifndef __GcadMaterial_FWD_DEFINED__
#define __GcadMaterial_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadMaterial GcadMaterial;
#else
typedef struct GcadMaterial GcadMaterial;
#endif /* __cplusplus */

#endif 	/* __GcadMaterial_FWD_DEFINED__ */


#ifndef __GcadRegisteredApplication_FWD_DEFINED__
#define __GcadRegisteredApplication_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadRegisteredApplication GcadRegisteredApplication;
#else
typedef struct GcadRegisteredApplication GcadRegisteredApplication;
#endif /* __cplusplus */

#endif 	/* __GcadRegisteredApplication_FWD_DEFINED__ */


#ifndef __GcadTextStyle_FWD_DEFINED__
#define __GcadTextStyle_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadTextStyle GcadTextStyle;
#else
typedef struct GcadTextStyle GcadTextStyle;
#endif /* __cplusplus */

#endif 	/* __GcadTextStyle_FWD_DEFINED__ */


#ifndef __GcadUCS_FWD_DEFINED__
#define __GcadUCS_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadUCS GcadUCS;
#else
typedef struct GcadUCS GcadUCS;
#endif /* __cplusplus */

#endif 	/* __GcadUCS_FWD_DEFINED__ */


#ifndef __GcadView_FWD_DEFINED__
#define __GcadView_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadView GcadView;
#else
typedef struct GcadView GcadView;
#endif /* __cplusplus */

#endif 	/* __GcadView_FWD_DEFINED__ */


#ifndef __GcadViewport_FWD_DEFINED__
#define __GcadViewport_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadViewport GcadViewport;
#else
typedef struct GcadViewport GcadViewport;
#endif /* __cplusplus */

#endif 	/* __GcadViewport_FWD_DEFINED__ */


#ifndef __GcadGroup_FWD_DEFINED__
#define __GcadGroup_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadGroup GcadGroup;
#else
typedef struct GcadGroup GcadGroup;
#endif /* __cplusplus */

#endif 	/* __GcadGroup_FWD_DEFINED__ */


#ifndef __GcadPlotConfiguration_FWD_DEFINED__
#define __GcadPlotConfiguration_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPlotConfiguration GcadPlotConfiguration;
#else
typedef struct GcadPlotConfiguration GcadPlotConfiguration;
#endif /* __cplusplus */

#endif 	/* __GcadPlotConfiguration_FWD_DEFINED__ */


#ifndef __GcadLayout_FWD_DEFINED__
#define __GcadLayout_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadLayout GcadLayout;
#else
typedef struct GcadLayout GcadLayout;
#endif /* __cplusplus */

#endif 	/* __GcadLayout_FWD_DEFINED__ */


#ifndef __GcadIdPair_FWD_DEFINED__
#define __GcadIdPair_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadIdPair GcadIdPair;
#else
typedef struct GcadIdPair GcadIdPair;
#endif /* __cplusplus */

#endif 	/* __GcadIdPair_FWD_DEFINED__ */


#ifndef __GcadTableStyle_FWD_DEFINED__
#define __GcadTableStyle_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadTableStyle GcadTableStyle;
#else
typedef struct GcadTableStyle GcadTableStyle;
#endif /* __cplusplus */

#endif 	/* __GcadTableStyle_FWD_DEFINED__ */


#ifndef __GcadSectionSettings_FWD_DEFINED__
#define __GcadSectionSettings_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSectionSettings GcadSectionSettings;
#else
typedef struct GcadSectionSettings GcadSectionSettings;
#endif /* __cplusplus */

#endif 	/* __GcadSectionSettings_FWD_DEFINED__ */


#ifndef __GcadSectionTypeSettings_FWD_DEFINED__
#define __GcadSectionTypeSettings_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSectionTypeSettings GcadSectionTypeSettings;
#else
typedef struct GcadSectionTypeSettings GcadSectionTypeSettings;
#endif /* __cplusplus */

#endif 	/* __GcadSectionTypeSettings_FWD_DEFINED__ */


#ifndef __GcadMLeaderStyle_FWD_DEFINED__
#define __GcadMLeaderStyle_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadMLeaderStyle GcadMLeaderStyle;
#else
typedef struct GcadMLeaderStyle GcadMLeaderStyle;
#endif /* __cplusplus */

#endif 	/* __GcadMLeaderStyle_FWD_DEFINED__ */


#ifndef __GcadHyperlinks_FWD_DEFINED__
#define __GcadHyperlinks_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadHyperlinks GcadHyperlinks;
#else
typedef struct GcadHyperlinks GcadHyperlinks;
#endif /* __cplusplus */

#endif 	/* __GcadHyperlinks_FWD_DEFINED__ */


#ifndef __GcadDictionary_FWD_DEFINED__
#define __GcadDictionary_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDictionary GcadDictionary;
#else
typedef struct GcadDictionary GcadDictionary;
#endif /* __cplusplus */

#endif 	/* __GcadDictionary_FWD_DEFINED__ */


#ifndef __GcadLayers_FWD_DEFINED__
#define __GcadLayers_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadLayers GcadLayers;
#else
typedef struct GcadLayers GcadLayers;
#endif /* __cplusplus */

#endif 	/* __GcadLayers_FWD_DEFINED__ */


#ifndef __GcadDimStyles_FWD_DEFINED__
#define __GcadDimStyles_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDimStyles GcadDimStyles;
#else
typedef struct GcadDimStyles GcadDimStyles;
#endif /* __cplusplus */

#endif 	/* __GcadDimStyles_FWD_DEFINED__ */


#ifndef __GcadDictionaries_FWD_DEFINED__
#define __GcadDictionaries_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDictionaries GcadDictionaries;
#else
typedef struct GcadDictionaries GcadDictionaries;
#endif /* __cplusplus */

#endif 	/* __GcadDictionaries_FWD_DEFINED__ */


#ifndef __GcadLineTypes_FWD_DEFINED__
#define __GcadLineTypes_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadLineTypes GcadLineTypes;
#else
typedef struct GcadLineTypes GcadLineTypes;
#endif /* __cplusplus */

#endif 	/* __GcadLineTypes_FWD_DEFINED__ */


#ifndef __GcadMaterials_FWD_DEFINED__
#define __GcadMaterials_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadMaterials GcadMaterials;
#else
typedef struct GcadMaterials GcadMaterials;
#endif /* __cplusplus */

#endif 	/* __GcadMaterials_FWD_DEFINED__ */


#ifndef __GcadTextStyles_FWD_DEFINED__
#define __GcadTextStyles_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadTextStyles GcadTextStyles;
#else
typedef struct GcadTextStyles GcadTextStyles;
#endif /* __cplusplus */

#endif 	/* __GcadTextStyles_FWD_DEFINED__ */


#ifndef __GcadUCSs_FWD_DEFINED__
#define __GcadUCSs_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadUCSs GcadUCSs;
#else
typedef struct GcadUCSs GcadUCSs;
#endif /* __cplusplus */

#endif 	/* __GcadUCSs_FWD_DEFINED__ */


#ifndef __GcadRegisteredApplications_FWD_DEFINED__
#define __GcadRegisteredApplications_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadRegisteredApplications GcadRegisteredApplications;
#else
typedef struct GcadRegisteredApplications GcadRegisteredApplications;
#endif /* __cplusplus */

#endif 	/* __GcadRegisteredApplications_FWD_DEFINED__ */


#ifndef __GcadViews_FWD_DEFINED__
#define __GcadViews_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadViews GcadViews;
#else
typedef struct GcadViews GcadViews;
#endif /* __cplusplus */

#endif 	/* __GcadViews_FWD_DEFINED__ */


#ifndef __GcadViewports_FWD_DEFINED__
#define __GcadViewports_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadViewports GcadViewports;
#else
typedef struct GcadViewports GcadViewports;
#endif /* __cplusplus */

#endif 	/* __GcadViewports_FWD_DEFINED__ */


#ifndef __GcadGroups_FWD_DEFINED__
#define __GcadGroups_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadGroups GcadGroups;
#else
typedef struct GcadGroups GcadGroups;
#endif /* __cplusplus */

#endif 	/* __GcadGroups_FWD_DEFINED__ */


#ifndef __GcadBlocks_FWD_DEFINED__
#define __GcadBlocks_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadBlocks GcadBlocks;
#else
typedef struct GcadBlocks GcadBlocks;
#endif /* __cplusplus */

#endif 	/* __GcadBlocks_FWD_DEFINED__ */


#ifndef __GcadLayouts_FWD_DEFINED__
#define __GcadLayouts_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadLayouts GcadLayouts;
#else
typedef struct GcadLayouts GcadLayouts;
#endif /* __cplusplus */

#endif 	/* __GcadLayouts_FWD_DEFINED__ */


#ifndef __GcadPlotConfigurations_FWD_DEFINED__
#define __GcadPlotConfigurations_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPlotConfigurations GcadPlotConfigurations;
#else
typedef struct GcadPlotConfigurations GcadPlotConfigurations;
#endif /* __cplusplus */

#endif 	/* __GcadPlotConfigurations_FWD_DEFINED__ */


#ifndef __GcadEntity_FWD_DEFINED__
#define __GcadEntity_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadEntity GcadEntity;
#else
typedef struct GcadEntity GcadEntity;
#endif /* __cplusplus */

#endif 	/* __GcadEntity_FWD_DEFINED__ */


#ifndef __GcadRasterImage_FWD_DEFINED__
#define __GcadRasterImage_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadRasterImage GcadRasterImage;
#else
typedef struct GcadRasterImage GcadRasterImage;
#endif /* __cplusplus */

#endif 	/* __GcadRasterImage_FWD_DEFINED__ */


#ifndef __Gcad3DFace_FWD_DEFINED__
#define __Gcad3DFace_FWD_DEFINED__

#ifdef __cplusplus
typedef class Gcad3DFace Gcad3DFace;
#else
typedef struct Gcad3DFace Gcad3DFace;
#endif /* __cplusplus */

#endif 	/* __Gcad3DFace_FWD_DEFINED__ */


#ifndef __Gcad3DPolyline_FWD_DEFINED__
#define __Gcad3DPolyline_FWD_DEFINED__

#ifdef __cplusplus
typedef class Gcad3DPolyline Gcad3DPolyline;
#else
typedef struct Gcad3DPolyline Gcad3DPolyline;
#endif /* __cplusplus */

#endif 	/* __Gcad3DPolyline_FWD_DEFINED__ */


#ifndef __GcadRegion_FWD_DEFINED__
#define __GcadRegion_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadRegion GcadRegion;
#else
typedef struct GcadRegion GcadRegion;
#endif /* __cplusplus */

#endif 	/* __GcadRegion_FWD_DEFINED__ */


#ifndef __Gcad3DSolid_FWD_DEFINED__
#define __Gcad3DSolid_FWD_DEFINED__

#ifdef __cplusplus
typedef class Gcad3DSolid Gcad3DSolid;
#else
typedef struct Gcad3DSolid Gcad3DSolid;
#endif /* __cplusplus */

#endif 	/* __Gcad3DSolid_FWD_DEFINED__ */


#ifndef __GcadArc_FWD_DEFINED__
#define __GcadArc_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadArc GcadArc;
#else
typedef struct GcadArc GcadArc;
#endif /* __cplusplus */

#endif 	/* __GcadArc_FWD_DEFINED__ */


#ifndef __GcadAttribute_FWD_DEFINED__
#define __GcadAttribute_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadAttribute GcadAttribute;
#else
typedef struct GcadAttribute GcadAttribute;
#endif /* __cplusplus */

#endif 	/* __GcadAttribute_FWD_DEFINED__ */


#ifndef __GcadAttributeReference_FWD_DEFINED__
#define __GcadAttributeReference_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadAttributeReference GcadAttributeReference;
#else
typedef struct GcadAttributeReference GcadAttributeReference;
#endif /* __cplusplus */

#endif 	/* __GcadAttributeReference_FWD_DEFINED__ */


#ifndef __GcadBlockReference_FWD_DEFINED__
#define __GcadBlockReference_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadBlockReference GcadBlockReference;
#else
typedef struct GcadBlockReference GcadBlockReference;
#endif /* __cplusplus */

#endif 	/* __GcadBlockReference_FWD_DEFINED__ */


#ifndef __GcadCircle_FWD_DEFINED__
#define __GcadCircle_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadCircle GcadCircle;
#else
typedef struct GcadCircle GcadCircle;
#endif /* __cplusplus */

#endif 	/* __GcadCircle_FWD_DEFINED__ */


#ifndef __GcadEllipse_FWD_DEFINED__
#define __GcadEllipse_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadEllipse GcadEllipse;
#else
typedef struct GcadEllipse GcadEllipse;
#endif /* __cplusplus */

#endif 	/* __GcadEllipse_FWD_DEFINED__ */


#ifndef __GcadHatch_FWD_DEFINED__
#define __GcadHatch_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadHatch GcadHatch;
#else
typedef struct GcadHatch GcadHatch;
#endif /* __cplusplus */

#endif 	/* __GcadHatch_FWD_DEFINED__ */


#ifndef __GcadLeader_FWD_DEFINED__
#define __GcadLeader_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadLeader GcadLeader;
#else
typedef struct GcadLeader GcadLeader;
#endif /* __cplusplus */

#endif 	/* __GcadLeader_FWD_DEFINED__ */


#ifndef __GcadMLeaderLeader_FWD_DEFINED__
#define __GcadMLeaderLeader_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadMLeaderLeader GcadMLeaderLeader;
#else
typedef struct GcadMLeaderLeader GcadMLeaderLeader;
#endif /* __cplusplus */

#endif 	/* __GcadMLeaderLeader_FWD_DEFINED__ */


#ifndef __GcadMLeader_FWD_DEFINED__
#define __GcadMLeader_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadMLeader GcadMLeader;
#else
typedef struct GcadMLeader GcadMLeader;
#endif /* __cplusplus */

#endif 	/* __GcadMLeader_FWD_DEFINED__ */


#ifndef __GcadLWPolyline_FWD_DEFINED__
#define __GcadLWPolyline_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadLWPolyline GcadLWPolyline;
#else
typedef struct GcadLWPolyline GcadLWPolyline;
#endif /* __cplusplus */

#endif 	/* __GcadLWPolyline_FWD_DEFINED__ */


#ifndef __GcadLine_FWD_DEFINED__
#define __GcadLine_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadLine GcadLine;
#else
typedef struct GcadLine GcadLine;
#endif /* __cplusplus */

#endif 	/* __GcadLine_FWD_DEFINED__ */


#ifndef __GcadMText_FWD_DEFINED__
#define __GcadMText_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadMText GcadMText;
#else
typedef struct GcadMText GcadMText;
#endif /* __cplusplus */

#endif 	/* __GcadMText_FWD_DEFINED__ */


#ifndef __GcadPoint_FWD_DEFINED__
#define __GcadPoint_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPoint GcadPoint;
#else
typedef struct GcadPoint GcadPoint;
#endif /* __cplusplus */

#endif 	/* __GcadPoint_FWD_DEFINED__ */


#ifndef __GcadPolyline_FWD_DEFINED__
#define __GcadPolyline_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPolyline GcadPolyline;
#else
typedef struct GcadPolyline GcadPolyline;
#endif /* __cplusplus */

#endif 	/* __GcadPolyline_FWD_DEFINED__ */


#ifndef __GcadPolygonMesh_FWD_DEFINED__
#define __GcadPolygonMesh_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPolygonMesh GcadPolygonMesh;
#else
typedef struct GcadPolygonMesh GcadPolygonMesh;
#endif /* __cplusplus */

#endif 	/* __GcadPolygonMesh_FWD_DEFINED__ */


#ifndef __GcadRay_FWD_DEFINED__
#define __GcadRay_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadRay GcadRay;
#else
typedef struct GcadRay GcadRay;
#endif /* __cplusplus */

#endif 	/* __GcadRay_FWD_DEFINED__ */


#ifndef __GcadShape_FWD_DEFINED__
#define __GcadShape_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadShape GcadShape;
#else
typedef struct GcadShape GcadShape;
#endif /* __cplusplus */

#endif 	/* __GcadShape_FWD_DEFINED__ */


#ifndef __GcadSolid_FWD_DEFINED__
#define __GcadSolid_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSolid GcadSolid;
#else
typedef struct GcadSolid GcadSolid;
#endif /* __cplusplus */

#endif 	/* __GcadSolid_FWD_DEFINED__ */


#ifndef __GcadSpline_FWD_DEFINED__
#define __GcadSpline_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSpline GcadSpline;
#else
typedef struct GcadSpline GcadSpline;
#endif /* __cplusplus */

#endif 	/* __GcadSpline_FWD_DEFINED__ */


#ifndef __GcadText_FWD_DEFINED__
#define __GcadText_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadText GcadText;
#else
typedef struct GcadText GcadText;
#endif /* __cplusplus */

#endif 	/* __GcadText_FWD_DEFINED__ */


#ifndef __GcadTolerance_FWD_DEFINED__
#define __GcadTolerance_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadTolerance GcadTolerance;
#else
typedef struct GcadTolerance GcadTolerance;
#endif /* __cplusplus */

#endif 	/* __GcadTolerance_FWD_DEFINED__ */


#ifndef __GcadTrace_FWD_DEFINED__
#define __GcadTrace_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadTrace GcadTrace;
#else
typedef struct GcadTrace GcadTrace;
#endif /* __cplusplus */

#endif 	/* __GcadTrace_FWD_DEFINED__ */


#ifndef __GcadXline_FWD_DEFINED__
#define __GcadXline_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadXline GcadXline;
#else
typedef struct GcadXline GcadXline;
#endif /* __cplusplus */

#endif 	/* __GcadXline_FWD_DEFINED__ */


#ifndef __GcadPViewport_FWD_DEFINED__
#define __GcadPViewport_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPViewport GcadPViewport;
#else
typedef struct GcadPViewport GcadPViewport;
#endif /* __cplusplus */

#endif 	/* __GcadPViewport_FWD_DEFINED__ */


#ifndef __GcadMInsertBlock_FWD_DEFINED__
#define __GcadMInsertBlock_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadMInsertBlock GcadMInsertBlock;
#else
typedef struct GcadMInsertBlock GcadMInsertBlock;
#endif /* __cplusplus */

#endif 	/* __GcadMInsertBlock_FWD_DEFINED__ */


#ifndef __GcadPolyfaceMesh_FWD_DEFINED__
#define __GcadPolyfaceMesh_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPolyfaceMesh GcadPolyfaceMesh;
#else
typedef struct GcadPolyfaceMesh GcadPolyfaceMesh;
#endif /* __cplusplus */

#endif 	/* __GcadPolyfaceMesh_FWD_DEFINED__ */


#ifndef __GcadMLine_FWD_DEFINED__
#define __GcadMLine_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadMLine GcadMLine;
#else
typedef struct GcadMLine GcadMLine;
#endif /* __cplusplus */

#endif 	/* __GcadMLine_FWD_DEFINED__ */


#ifndef __GcadExternalReference_FWD_DEFINED__
#define __GcadExternalReference_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadExternalReference GcadExternalReference;
#else
typedef struct GcadExternalReference GcadExternalReference;
#endif /* __cplusplus */

#endif 	/* __GcadExternalReference_FWD_DEFINED__ */


#ifndef __GcadComparedReference_FWD_DEFINED__
#define __GcadComparedReference_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadComparedReference GcadComparedReference;
#else
typedef struct GcadComparedReference GcadComparedReference;
#endif /* __cplusplus */

#endif 	/* __GcadComparedReference_FWD_DEFINED__ */


#ifndef __GcadTable_FWD_DEFINED__
#define __GcadTable_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadTable GcadTable;
#else
typedef struct GcadTable GcadTable;
#endif /* __cplusplus */

#endif 	/* __GcadTable_FWD_DEFINED__ */


#ifndef __GcadOle_FWD_DEFINED__
#define __GcadOle_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadOle GcadOle;
#else
typedef struct GcadOle GcadOle;
#endif /* __cplusplus */

#endif 	/* __GcadOle_FWD_DEFINED__ */


#ifndef __GcadHelix_FWD_DEFINED__
#define __GcadHelix_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadHelix GcadHelix;
#else
typedef struct GcadHelix GcadHelix;
#endif /* __cplusplus */

#endif 	/* __GcadHelix_FWD_DEFINED__ */


#ifndef __GcadSurface_FWD_DEFINED__
#define __GcadSurface_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSurface GcadSurface;
#else
typedef struct GcadSurface GcadSurface;
#endif /* __cplusplus */

#endif 	/* __GcadSurface_FWD_DEFINED__ */


#ifndef __GcadPlaneSurface_FWD_DEFINED__
#define __GcadPlaneSurface_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPlaneSurface GcadPlaneSurface;
#else
typedef struct GcadPlaneSurface GcadPlaneSurface;
#endif /* __cplusplus */

#endif 	/* __GcadPlaneSurface_FWD_DEFINED__ */


#ifndef __GcadExtrudedSurface_FWD_DEFINED__
#define __GcadExtrudedSurface_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadExtrudedSurface GcadExtrudedSurface;
#else
typedef struct GcadExtrudedSurface GcadExtrudedSurface;
#endif /* __cplusplus */

#endif 	/* __GcadExtrudedSurface_FWD_DEFINED__ */


#ifndef __GcadRevolvedSurface_FWD_DEFINED__
#define __GcadRevolvedSurface_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadRevolvedSurface GcadRevolvedSurface;
#else
typedef struct GcadRevolvedSurface GcadRevolvedSurface;
#endif /* __cplusplus */

#endif 	/* __GcadRevolvedSurface_FWD_DEFINED__ */


#ifndef __GcadSweptSurface_FWD_DEFINED__
#define __GcadSweptSurface_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSweptSurface GcadSweptSurface;
#else
typedef struct GcadSweptSurface GcadSweptSurface;
#endif /* __cplusplus */

#endif 	/* __GcadSweptSurface_FWD_DEFINED__ */


#ifndef __GcadLoftedSurface_FWD_DEFINED__
#define __GcadLoftedSurface_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadLoftedSurface GcadLoftedSurface;
#else
typedef struct GcadLoftedSurface GcadLoftedSurface;
#endif /* __cplusplus */

#endif 	/* __GcadLoftedSurface_FWD_DEFINED__ */


#ifndef __GcadSection_FWD_DEFINED__
#define __GcadSection_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSection GcadSection;
#else
typedef struct GcadSection GcadSection;
#endif /* __cplusplus */

#endif 	/* __GcadSection_FWD_DEFINED__ */


#ifndef __GcadSectionManager_FWD_DEFINED__
#define __GcadSectionManager_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSectionManager GcadSectionManager;
#else
typedef struct GcadSectionManager GcadSectionManager;
#endif /* __cplusplus */

#endif 	/* __GcadSectionManager_FWD_DEFINED__ */


#ifndef __GcadDwfUnderlay_FWD_DEFINED__
#define __GcadDwfUnderlay_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDwfUnderlay GcadDwfUnderlay;
#else
typedef struct GcadDwfUnderlay GcadDwfUnderlay;
#endif /* __cplusplus */

#endif 	/* __GcadDwfUnderlay_FWD_DEFINED__ */


#ifndef __GcadDgnUnderlay_FWD_DEFINED__
#define __GcadDgnUnderlay_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDgnUnderlay GcadDgnUnderlay;
#else
typedef struct GcadDgnUnderlay GcadDgnUnderlay;
#endif /* __cplusplus */

#endif 	/* __GcadDgnUnderlay_FWD_DEFINED__ */


#ifndef __GcadPdfUnderlay_FWD_DEFINED__
#define __GcadPdfUnderlay_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPdfUnderlay GcadPdfUnderlay;
#else
typedef struct GcadPdfUnderlay GcadPdfUnderlay;
#endif /* __cplusplus */

#endif 	/* __GcadPdfUnderlay_FWD_DEFINED__ */


#ifndef __GcadSubEntity_FWD_DEFINED__
#define __GcadSubEntity_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSubEntity GcadSubEntity;
#else
typedef struct GcadSubEntity GcadSubEntity;
#endif /* __cplusplus */

#endif 	/* __GcadSubEntity_FWD_DEFINED__ */


#ifndef __GcadSubEntSolidFace_FWD_DEFINED__
#define __GcadSubEntSolidFace_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSubEntSolidFace GcadSubEntSolidFace;
#else
typedef struct GcadSubEntSolidFace GcadSubEntSolidFace;
#endif /* __cplusplus */

#endif 	/* __GcadSubEntSolidFace_FWD_DEFINED__ */


#ifndef __GcadSubEntSolidEdge_FWD_DEFINED__
#define __GcadSubEntSolidEdge_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSubEntSolidEdge GcadSubEntSolidEdge;
#else
typedef struct GcadSubEntSolidEdge GcadSubEntSolidEdge;
#endif /* __cplusplus */

#endif 	/* __GcadSubEntSolidEdge_FWD_DEFINED__ */


#ifndef __GcadSubEntSolidVertex_FWD_DEFINED__
#define __GcadSubEntSolidVertex_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSubEntSolidVertex GcadSubEntSolidVertex;
#else
typedef struct GcadSubEntSolidVertex GcadSubEntSolidVertex;
#endif /* __cplusplus */

#endif 	/* __GcadSubEntSolidVertex_FWD_DEFINED__ */


#ifndef __GcadSubEntSolidNode_FWD_DEFINED__
#define __GcadSubEntSolidNode_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSubEntSolidNode GcadSubEntSolidNode;
#else
typedef struct GcadSubEntSolidNode GcadSubEntSolidNode;
#endif /* __cplusplus */

#endif 	/* __GcadSubEntSolidNode_FWD_DEFINED__ */


#ifndef __GcadWipeout_FWD_DEFINED__
#define __GcadWipeout_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadWipeout GcadWipeout;
#else
typedef struct GcadWipeout GcadWipeout;
#endif /* __cplusplus */

#endif 	/* __GcadWipeout_FWD_DEFINED__ */


#ifndef __GcadSubDMesh_FWD_DEFINED__
#define __GcadSubDMesh_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSubDMesh GcadSubDMesh;
#else
typedef struct GcadSubDMesh GcadSubDMesh;
#endif /* __cplusplus */

#endif 	/* __GcadSubDMesh_FWD_DEFINED__ */


#ifndef __GcadSubDMeshFace_FWD_DEFINED__
#define __GcadSubDMeshFace_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSubDMeshFace GcadSubDMeshFace;
#else
typedef struct GcadSubDMeshFace GcadSubDMeshFace;
#endif /* __cplusplus */

#endif 	/* __GcadSubDMeshFace_FWD_DEFINED__ */


#ifndef __GcadSubDMeshEdge_FWD_DEFINED__
#define __GcadSubDMeshEdge_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSubDMeshEdge GcadSubDMeshEdge;
#else
typedef struct GcadSubDMeshEdge GcadSubDMeshEdge;
#endif /* __cplusplus */

#endif 	/* __GcadSubDMeshEdge_FWD_DEFINED__ */


#ifndef __GcadSubDMeshVertex_FWD_DEFINED__
#define __GcadSubDMeshVertex_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSubDMeshVertex GcadSubDMeshVertex;
#else
typedef struct GcadSubDMeshVertex GcadSubDMeshVertex;
#endif /* __cplusplus */

#endif 	/* __GcadSubDMeshVertex_FWD_DEFINED__ */


#ifndef __GcadNurbSurface_FWD_DEFINED__
#define __GcadNurbSurface_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadNurbSurface GcadNurbSurface;
#else
typedef struct GcadNurbSurface GcadNurbSurface;
#endif /* __cplusplus */

#endif 	/* __GcadNurbSurface_FWD_DEFINED__ */


#ifndef __GcadGeoPositionMarker_FWD_DEFINED__
#define __GcadGeoPositionMarker_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadGeoPositionMarker GcadGeoPositionMarker;
#else
typedef struct GcadGeoPositionMarker GcadGeoPositionMarker;
#endif /* __cplusplus */

#endif 	/* __GcadGeoPositionMarker_FWD_DEFINED__ */


#ifndef __GcadGeomapImage_FWD_DEFINED__
#define __GcadGeomapImage_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadGeomapImage GcadGeomapImage;
#else
typedef struct GcadGeomapImage GcadGeomapImage;
#endif /* __cplusplus */

#endif 	/* __GcadGeomapImage_FWD_DEFINED__ */


#ifndef __GcadDimension_FWD_DEFINED__
#define __GcadDimension_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDimension GcadDimension;
#else
typedef struct GcadDimension GcadDimension;
#endif /* __cplusplus */

#endif 	/* __GcadDimension_FWD_DEFINED__ */


#ifndef __GcadDimAligned_FWD_DEFINED__
#define __GcadDimAligned_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDimAligned GcadDimAligned;
#else
typedef struct GcadDimAligned GcadDimAligned;
#endif /* __cplusplus */

#endif 	/* __GcadDimAligned_FWD_DEFINED__ */


#ifndef __GcadDimAngular_FWD_DEFINED__
#define __GcadDimAngular_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDimAngular GcadDimAngular;
#else
typedef struct GcadDimAngular GcadDimAngular;
#endif /* __cplusplus */

#endif 	/* __GcadDimAngular_FWD_DEFINED__ */


#ifndef __GcadDimDiametric_FWD_DEFINED__
#define __GcadDimDiametric_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDimDiametric GcadDimDiametric;
#else
typedef struct GcadDimDiametric GcadDimDiametric;
#endif /* __cplusplus */

#endif 	/* __GcadDimDiametric_FWD_DEFINED__ */


#ifndef __GcadDimOrdinate_FWD_DEFINED__
#define __GcadDimOrdinate_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDimOrdinate GcadDimOrdinate;
#else
typedef struct GcadDimOrdinate GcadDimOrdinate;
#endif /* __cplusplus */

#endif 	/* __GcadDimOrdinate_FWD_DEFINED__ */


#ifndef __GcadDimRadial_FWD_DEFINED__
#define __GcadDimRadial_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDimRadial GcadDimRadial;
#else
typedef struct GcadDimRadial GcadDimRadial;
#endif /* __cplusplus */

#endif 	/* __GcadDimRadial_FWD_DEFINED__ */


#ifndef __GcadDimRotated_FWD_DEFINED__
#define __GcadDimRotated_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDimRotated GcadDimRotated;
#else
typedef struct GcadDimRotated GcadDimRotated;
#endif /* __cplusplus */

#endif 	/* __GcadDimRotated_FWD_DEFINED__ */


#ifndef __GcadDim3PointAngular_FWD_DEFINED__
#define __GcadDim3PointAngular_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDim3PointAngular GcadDim3PointAngular;
#else
typedef struct GcadDim3PointAngular GcadDim3PointAngular;
#endif /* __cplusplus */

#endif 	/* __GcadDim3PointAngular_FWD_DEFINED__ */


#ifndef __GcadDimArcLength_FWD_DEFINED__
#define __GcadDimArcLength_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDimArcLength GcadDimArcLength;
#else
typedef struct GcadDimArcLength GcadDimArcLength;
#endif /* __cplusplus */

#endif 	/* __GcadDimArcLength_FWD_DEFINED__ */


#ifndef __GcadDimRadialLarge_FWD_DEFINED__
#define __GcadDimRadialLarge_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDimRadialLarge GcadDimRadialLarge;
#else
typedef struct GcadDimRadialLarge GcadDimRadialLarge;
#endif /* __cplusplus */

#endif 	/* __GcadDimRadialLarge_FWD_DEFINED__ */


#ifndef __GcadModelSpace_FWD_DEFINED__
#define __GcadModelSpace_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadModelSpace GcadModelSpace;
#else
typedef struct GcadModelSpace GcadModelSpace;
#endif /* __cplusplus */

#endif 	/* __GcadModelSpace_FWD_DEFINED__ */


#ifndef __GcadPaperSpace_FWD_DEFINED__
#define __GcadPaperSpace_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPaperSpace GcadPaperSpace;
#else
typedef struct GcadPaperSpace GcadPaperSpace;
#endif /* __cplusplus */

#endif 	/* __GcadPaperSpace_FWD_DEFINED__ */


#ifndef __GcadPointCloud_FWD_DEFINED__
#define __GcadPointCloud_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPointCloud GcadPointCloud;
#else
typedef struct GcadPointCloud GcadPointCloud;
#endif /* __cplusplus */

#endif 	/* __GcadPointCloud_FWD_DEFINED__ */


#ifndef __GcadPointCloudEx_FWD_DEFINED__
#define __GcadPointCloudEx_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadPointCloudEx GcadPointCloudEx;
#else
typedef struct GcadPointCloudEx GcadPointCloudEx;
#endif /* __cplusplus */

#endif 	/* __GcadPointCloudEx_FWD_DEFINED__ */


#ifndef __GcadSummaryInfo_FWD_DEFINED__
#define __GcadSummaryInfo_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSummaryInfo GcadSummaryInfo;
#else
typedef struct GcadSummaryInfo GcadSummaryInfo;
#endif /* __cplusplus */

#endif 	/* __GcadSummaryInfo_FWD_DEFINED__ */


#ifndef __GcadDatabasePreferences_FWD_DEFINED__
#define __GcadDatabasePreferences_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDatabasePreferences GcadDatabasePreferences;
#else
typedef struct GcadDatabasePreferences GcadDatabasePreferences;
#endif /* __cplusplus */

#endif 	/* __GcadDatabasePreferences_FWD_DEFINED__ */


#ifndef __GcadDatabase_FWD_DEFINED__
#define __GcadDatabase_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadDatabase GcadDatabase;
#else
typedef struct GcadDatabase GcadDatabase;
#endif /* __cplusplus */

#endif 	/* __GcadDatabase_FWD_DEFINED__ */


#ifndef __GcadSecurityParams_FWD_DEFINED__
#define __GcadSecurityParams_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadSecurityParams GcadSecurityParams;
#else
typedef struct GcadSecurityParams GcadSecurityParams;
#endif /* __cplusplus */

#endif 	/* __GcadSecurityParams_FWD_DEFINED__ */


#ifndef __GcadLayerStateManager_FWD_DEFINED__
#define __GcadLayerStateManager_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcadLayerStateManager GcadLayerStateManager;
#else
typedef struct GcadLayerStateManager GcadLayerStateManager;
#endif /* __cplusplus */

#endif 	/* __GcadLayerStateManager_FWD_DEFINED__ */


#ifndef __IGcAxDbDocumentEvents_FWD_DEFINED__
#define __IGcAxDbDocumentEvents_FWD_DEFINED__
typedef interface IGcAxDbDocumentEvents IGcAxDbDocumentEvents;

#endif 	/* __IGcAxDbDocumentEvents_FWD_DEFINED__ */


#ifndef __IGcAxDbDocument_FWD_DEFINED__
#define __IGcAxDbDocument_FWD_DEFINED__
typedef interface IGcAxDbDocument IGcAxDbDocument;

#endif 	/* __IGcAxDbDocument_FWD_DEFINED__ */


#ifndef __GcAxDbDocument_FWD_DEFINED__
#define __GcAxDbDocument_FWD_DEFINED__

#ifdef __cplusplus
typedef class GcAxDbDocument GcAxDbDocument;
#else
typedef struct GcAxDbDocument GcAxDbDocument;
#endif /* __cplusplus */

#endif 	/* __GcAxDbDocument_FWD_DEFINED__ */


#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_gxdb_0000_0000 */
/* [local] */ 

#pragma once


extern RPC_IF_HANDLE __MIDL_itf_gxdb_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_gxdb_0000_0000_v0_0_s_ifspec;


#ifndef __GXDBLib_LIBRARY_DEFINED__
#define __GXDBLib_LIBRARY_DEFINED__

/* library GXDBLib */
/* [helpstring][lcid][version][uuid] */ 

typedef __int64 LONG_PTR;

typedef __int64 *PLONG_PTR;































































































































typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("40FD3B4A-2B1A-4D8D-9C8C-1E1D98FCEB91") 
enum GcBoolean
    {
        gcFalse	= 0,
        acFalse	= 0,
        gcTrue	= 1,
        acTrue	= 1
    } 	GcBoolean;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("3D7B8725-F3A1-4797-BB33-651807919A77") 
enum GcOnOff
    {
        gcOff	= 0,
        acOff	= 0,
        gcOn	= 1,
        acOn	= 1
    } 	GcOnOff;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("7888CEF9-0ACD-46C4-970E-B5BF6E221A05") 
enum GcEntityName
    {
        gc3dFace	= 1,
        ac3dFace	= 1,
        gc3dPolyline	= 2,
        ac3dPolyline	= 2,
        gc3dSolid	= 3,
        ac3dSolid	= 3,
        gcArc	= 4,
        acArc	= 4,
        gcAttribute	= 5,
        acAttribute	= 5,
        gcAttributeReference	= 6,
        acAttributeReference	= 6,
        gcBlockReference	= 7,
        acBlockReference	= 7,
        gcCircle	= 8,
        acCircle	= 8,
        gcDimAligned	= 9,
        acDimAligned	= 9,
        gcDimAngular	= 10,
        acDimAngular	= 10,
        gcDimDiametric	= 12,
        acDimDiametric	= 12,
        gcDimOrdinate	= 13,
        acDimOrdinate	= 13,
        gcDimRadial	= 14,
        acDimRadial	= 14,
        gcDimRotated	= 15,
        acDimRotated	= 15,
        gcEllipse	= 16,
        acEllipse	= 16,
        gcHatch	= 17,
        acHatch	= 17,
        gcLeader	= 18,
        acLeader	= 18,
        gcLine	= 19,
        acLine	= 19,
        gcMtext	= 21,
        acMtext	= 21,
        gcPoint	= 22,
        acPoint	= 22,
        gcPolyline	= 23,
        acPolyline	= 23,
        gcPolylineLight	= 24,
        acPolylineLight	= 24,
        gcPolymesh	= 25,
        acPolymesh	= 25,
        gcRaster	= 26,
        acRaster	= 26,
        gcRay	= 27,
        acRay	= 27,
        gcRegion	= 28,
        acRegion	= 28,
        gcShape	= 29,
        acShape	= 29,
        gcSolid	= 30,
        acSolid	= 30,
        gcSpline	= 31,
        acSpline	= 31,
        gcText	= 32,
        acText	= 32,
        gcTolerance	= 33,
        acTolerance	= 33,
        gcTrace	= 34,
        acTrace	= 34,
        gcPViewport	= 35,
        acPViewport	= 35,
        gcXline	= 36,
        acXline	= 36,
        gcGroup	= 37,
        acGroup	= 37,
        gcMInsertBlock	= 38,
        acMInsertBlock	= 38,
        gcPolyfaceMesh	= 39,
        acPolyfaceMesh	= 39,
        gcMLine	= 40,
        acMLine	= 40,
        gcDim3PointAngular	= 41,
        acDim3PointAngular	= 41,
        gcExternalReference	= 42,
        acExternalReference	= 42,
        gcTable	= 43,
        acTable	= 43,
        gcDimArcLength	= 44,
        acDimArcLength	= 44,
        gcDimRadialLarge	= 45,
        acDimRadialLarge	= 45,
        gcDwfUnderlay	= 46,
        acDwfUnderlay	= 46,
        gcDgnUnderlay	= 47,
        acDgnUnderlay	= 47,
        gcMLeader	= 48,
        acMLeader	= 48,
        gcSubDMesh	= 49,
        acSubDMesh	= 49,
        gcPdfUnderlay	= 50,
        acPdfUnderlay	= 50,
        gcNurbSurface	= 51,
        acNurbSurface	= 51
    } 	GcEntityName;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("7F82509B-690D-4F7B-835E-D27F267E2AF5") 
enum GcActiveSpace
    {
        gcPaperSpace	= 0,
        acPaperSpace	= 0,
        gcModelSpace	= 1,
        acModelSpace	= 1
    } 	GcActiveSpace;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("282B81ED-FE5C-44D1-A838-444C9029D390") 
enum GcKeyboardAccelerator
    {
        gcPreferenceClassic	= 0,
        acPreferenceClassic	= 0,
        gcPreferenceCustom	= 1,
        acPreferenceCustom	= 1
    } 	GcKeyboardAccelerator;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("222F4DBA-D5B1-463A-83AF-2B90F8372973") 
enum GcPlotOrientation
    {
        gcPlotOrientationPortrait	= 0,
        acPlotOrientationPortrait	= 0,
        gcPlotOrientationLandscape	= 1,
        acPlotOrientationLandscape	= 1
    } 	GcPlotOrientation;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("FAA89FC4-A1A7-4608-A3AC-B0E2E40853F0") 
enum GcColor
    {
        gcByBlock	= 0,
        acByBlock	= 0,
        gcRed	= 1,
        acRed	= 1,
        gcYellow	= 2,
        acYellow	= 2,
        gcGreen	= 3,
        acGreen	= 3,
        gcCyan	= 4,
        acCyan	= 4,
        gcBlue	= 5,
        acBlue	= 5,
        gcMagenta	= 6,
        acMagenta	= 6,
        gcWhite	= 7,
        acWhite	= 7,
        gcByLayer	= 256,
        acByLayer	= 256
    } 	GcColor;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("AA95A7A1-0AA5-4146-BCB7-289FBEF6738F") 
enum GcAttachmentPoint
    {
        gcAttachmentPointTopLeft	= 1,
        acAttachmentPointTopLeft	= 1,
        gcAttachmentPointTopCenter	= 2,
        acAttachmentPointTopCenter	= 2,
        gcAttachmentPointTopRight	= 3,
        acAttachmentPointTopRight	= 3,
        gcAttachmentPointMiddleLeft	= 4,
        acAttachmentPointMiddleLeft	= 4,
        gcAttachmentPointMiddleCenter	= 5,
        acAttachmentPointMiddleCenter	= 5,
        gcAttachmentPointMiddleRight	= 6,
        acAttachmentPointMiddleRight	= 6,
        gcAttachmentPointBottomLeft	= 7,
        acAttachmentPointBottomLeft	= 7,
        gcAttachmentPointBottomCenter	= 8,
        acAttachmentPointBottomCenter	= 8,
        gcAttachmentPointBottomRight	= 9,
        acAttachmentPointBottomRight	= 9
    } 	GcAttachmentPoint;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("CDA04D05-BFF4-4F3B-B4A7-E2180D488E22") 
enum GcDrawingDirection
    {
        gcLeftToRight	= 1,
        acLeftToRight	= 1,
        gcRightToLeft	= 2,
        acRightToLeft	= 2,
        gcTopToBottom	= 3,
        acTopToBottom	= 3,
        gcBottomToTop	= 4,
        acBottomToTop	= 4,
        gcByStyle	= 5,
        acByStyle	= 5
    } 	GcDrawingDirection;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("D6A11C2A-DF54-4D8C-A290-56C52F33B294") 
enum GcLeaderType
    {
        gcLineNoArrow	= 0,
        acLineNoArrow	= 0,
        gcSplineNoArrow	= 1,
        acSplineNoArrow	= 1,
        gcLineWithArrow	= 2,
        acLineWithArrow	= 2,
        gcSplineWithArrow	= 3,
        acSplineWithArrow	= 3
    } 	GcLeaderType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("4436D06F-1E61-4FD7-B1EB-3B3A8D2B3BB6") 
enum GcAttributeMode
    {
        gcAttributeModeNormal	= 0,
        acAttributeModeNormal	= 0,
        gcAttributeModeInvisible	= 1,
        acAttributeModeInvisible	= 1,
        gcAttributeModeConstant	= 2,
        acAttributeModeConstant	= 2,
        gcAttributeModeVerify	= 4,
        acAttributeModeVerify	= 4,
        gcAttributeModePreset	= 8,
        acAttributeModePreset	= 8,
        gcAttributeModeLockPosition	= 16,
        acAttributeModeLockPosition	= 16,
        gcAttributeModeMultipleLine	= 32,
        acAttributeModeMultipleLine	= 32
    } 	GcAttributeMode;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("2975F11B-578D-4FDF-80A0-3A420C2D9E70") 
enum GcHorizontalAlignment
    {
        gcHorizontalAlignmentLeft	= 0,
        acHorizontalAlignmentLeft	= 0,
        gcHorizontalAlignmentCenter	= 1,
        acHorizontalAlignmentCenter	= 1,
        gcHorizontalAlignmentRight	= 2,
        acHorizontalAlignmentRight	= 2,
        gcHorizontalAlignmentAligned	= 3,
        acHorizontalAlignmentAligned	= 3,
        gcHorizontalAlignmentMiddle	= 4,
        acHorizontalAlignmentMiddle	= 4,
        gcHorizontalAlignmentFit	= 5,
        acHorizontalAlignmentFit	= 5
    } 	GcHorizontalAlignment;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("74390716-2880-4FF9-B930-42418D548BC2") 
enum GcVerticalAlignment
    {
        gcVerticalAlignmentBaseline	= 0,
        acVerticalAlignmentBaseline	= 0,
        gcVerticalAlignmentBottom	= 1,
        acVerticalAlignmentBottom	= 1,
        gcVerticalAlignmentMiddle	= 2,
        acVerticalAlignmentMiddle	= 2,
        gcVerticalAlignmentTop	= 3,
        acVerticalAlignmentTop	= 3
    } 	GcVerticalAlignment;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("217FA4FF-1D99-4DA0-BE98-71DE78CBA20A") 
enum GcTextGenerationFlag
    {
        gcTextFlagBackward	= 2,
        acTextFlagBackward	= 2,
        gcTextFlagUpsideDown	= 4,
        acTextFlagUpsideDown	= 4
    } 	GcTextGenerationFlag;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("45B2F447-8C31-4404-BAB3-AE3877033070") 
enum GcSelect
    {
        gcSelectionSetWindow	= 0,
        acSelectionSetWindow	= 0,
        gcSelectionSetCrossing	= 1,
        acSelectionSetCrossing	= 1,
        gcSelectionSetFence	= 2,
        acSelectionSetFence	= 2,
        gcSelectionSetPrevious	= 3,
        acSelectionSetPrevious	= 3,
        gcSelectionSetLast	= 4,
        acSelectionSetLast	= 4,
        gcSelectionSetAll	= 5,
        acSelectionSetAll	= 5,
        gcSelectionSetWindowPolygon	= 6,
        acSelectionSetWindowPolygon	= 6,
        gcSelectionSetCrossingPolygon	= 7,
        acSelectionSetCrossingPolygon	= 7
    } 	GcSelect;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("BCFEB2C7-1BDA-490B-94F1-31E61C4CAB31") 
enum GcPatternType
    {
        gcHatchPatternTypeUserDefined	= 0,
        acHatchPatternTypeUserDefined	= 0,
        gcHatchPatternTypePreDefined	= 1,
        acHatchPatternTypePreDefined	= 1,
        gcHatchPatternTypeCustomDefined	= 2,
        acHatchPatternTypeCustomDefined	= 2
    } 	GcPatternType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("AFC5C02F-4F88-4067-94F4-13FFF815E235") 
enum GcLoopType
    {
        gcHatchLoopTypeDefault	= 0,
        acHatchLoopTypeDefault	= 0,
        gcHatchLoopTypeExternal	= 1,
        acHatchLoopTypeExternal	= 1,
        gcHatchLoopTypePolyline	= 2,
        acHatchLoopTypePolyline	= 2,
        gcHatchLoopTypeDerived	= 4,
        acHatchLoopTypeDerived	= 4,
        gcHatchLoopTypeTextbox	= 8,
        acHatchLoopTypeTextbox	= 8
    } 	GcLoopType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("5143FF53-6326-4D96-81DC-2DA9AE2622F4") 
enum GcHatchStyle
    {
        gcHatchStyleNormal	= 0,
        acHatchStyleNormal	= 0,
        gcHatchStyleOuter	= 1,
        acHatchStyleOuter	= 1,
        gcHatchStyleIgnore	= 2,
        acHatchStyleIgnore	= 2
    } 	GcHatchStyle;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("F0A0991B-333F-4E5E-99B1-DF1DF6FF5329") 
enum GcPolylineType
    {
        gcSimplePoly	= 0,
        acSimplePoly	= 0,
        gcFitCurvePoly	= 1,
        acFitCurvePoly	= 1,
        gcQuadSplinePoly	= 2,
        acQuadSplinePoly	= 2,
        gcCubicSplinePoly	= 3,
        acCubicSplinePoly	= 3
    } 	GcPolylineType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("A7367A37-85F9-4D42-AAA0-A7BFA8EE9D2D") 
enum Gc3DPolylineType
    {
        gcSimple3DPoly	= 0,
        acSimple3DPoly	= 0,
        gcQuadSpline3DPoly	= 1,
        acQuadSpline3DPoly	= 1,
        gcCubicSpline3DPoly	= 2,
        acCubicSpline3DPoly	= 2
    } 	Gc3DPolylineType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("6B4B081E-F4C5-4107-9A47-578548E99FC6") 
enum GcViewportSplitType
    {
        gcViewport2Horizontal	= 0,
        acViewport2Horizontal	= 0,
        gcViewport2Vertical	= 1,
        acViewport2Vertical	= 1,
        gcViewport3Left	= 2,
        acViewport3Left	= 2,
        gcViewport3Right	= 3,
        acViewport3Right	= 3,
        gcViewport3Horizontal	= 4,
        acViewport3Horizontal	= 4,
        gcViewport3Vertical	= 5,
        acViewport3Vertical	= 5,
        gcViewport3Above	= 6,
        acViewport3Above	= 6,
        gcViewport3Below	= 7,
        acViewport3Below	= 7,
        gcViewport4	= 8,
        acViewport4	= 8
    } 	GcViewportSplitType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("1420BC64-CFA1-49A0-8E88-3CA7FFEBEA7A") 
enum GcRegenType
    {
        gcActiveViewport	= 0,
        acActiveViewport	= 0,
        gcAllViewports	= 1,
        acAllViewports	= 1
    } 	GcRegenType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("54CA7FED-8953-4F92-BBAF-AC55AE901122") 
enum GcBooleanType
    {
        gcUnion	= 0,
        acUnion	= 0,
        gcIntersection	= 1,
        acIntersection	= 1,
        gcSubtraction	= 2,
        acSubtraction	= 2
    } 	GcBooleanType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("4523935F-CC8C-4006-89CD-B68FE287B1C4") 
enum GcExtendOption
    {
        gcExtendNone	= 0,
        acExtendNone	= 0,
        gcExtendThisEntity	= 1,
        acExtendThisEntity	= 1,
        gcExtendOtherEntity	= 2,
        acExtendOtherEntity	= 2,
        gcExtendBoth	= 3,
        acExtendBoth	= 3
    } 	GcExtendOption;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("31426066-11F4-441D-94C3-8F8FB3892818") 
enum GcAngleUnits
    {
        gcDegrees	= 0,
        acDegrees	= 0,
        gcDegreeMinuteSeconds	= 1,
        acDegreeMinuteSeconds	= 1,
        gcGrads	= 2,
        acGrads	= 2,
        gcRadians	= 3,
        acRadians	= 3
    } 	GcAngleUnits;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("2EF3EE24-B63E-4974-9691-3B74E8D7E8CF") 
enum GcUnits
    {
        gcDefaultUnits	= -1,
        acDefaultUnits	= -1,
        gcScientific	= 1,
        acScientific	= 1,
        gcDecimal	= 2,
        acDecimal	= 2,
        gcEngineering	= 3,
        acEngineering	= 3,
        gcArchitectural	= 4,
        acArchitectural	= 4,
        gcFractional	= 5,
        acFractional	= 5
    } 	GcUnits;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("B8E59AEA-2835-4119-948C-3FAAF2BC5261") 
enum GcCoordinateSystem
    {
        gcWorld	= 0,
        acWorld	= 0,
        gcUCS	= 1,
        acUCS	= 1,
        gcDisplayDCS	= 2,
        acDisplayDCS	= 2,
        gcPaperSpaceDCS	= 3,
        acPaperSpaceDCS	= 3,
        gcOCS	= 4,
        acOCS	= 4
    } 	GcCoordinateSystem;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("2FBA21D9-37A1-49C2-843E-CAE98D04F692") 
enum GcMeasurementUnits
    {
        gcEnglish	= 0,
        acEnglish	= 0,
        gcMetric	= 1,
        acMetric	= 1
    } 	GcMeasurementUnits;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("AE6D9732-D5C7-4F98-A0CC-E7651E88D418") 
enum GcXRefDemandLoad
    {
        gcDemandLoadDisabled	= 0,
        acDemandLoadDisabled	= 0,
        gcDemandLoadEnabled	= 1,
        acDemandLoadEnabled	= 1,
        gcDemandLoadEnabledWithCopy	= 2,
        acDemandLoadEnabledWithCopy	= 2
    } 	GcXRefDemandLoad;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("5FC49DC2-AED9-478D-9700-4F795BEA1EA6") 
enum GcPreviewMode
    {
        gcPartialPreview	= 0,
        acPartialPreview	= 0,
        gcFullPreview	= 1,
        acFullPreview	= 1
    } 	GcPreviewMode;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("0F147ADB-525C-4B4A-B7E3-1458BC9851EA") 
enum GcPolymeshType
    {
        gcSimpleMesh	= 0,
        acSimpleMesh	= 0,
        gcQuadSurfaceMesh	= 5,
        acQuadSurfaceMesh	= 5,
        gcCubicSurfaceMesh	= 6,
        acCubicSurfaceMesh	= 6,
        gcBezierSurfaceMesh	= 8,
        acBezierSurfaceMesh	= 8
    } 	GcPolymeshType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("3BC2D034-3650-415E-96B2-C925171505FF") 
enum GcZoomScaleType
    {
        gcZoomScaledAbsolute	= 0,
        acZoomScaledAbsolute	= 0,
        gcZoomScaledRelative	= 1,
        acZoomScaledRelative	= 1,
        gcZoomScaledRelativePSpace	= 2,
        acZoomScaledRelativePSpace	= 2
    } 	GcZoomScaleType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("29065434-4635-4019-A524-94E9C9DBD50C") 
enum GcDragDisplayMode
    {
        gcDragDoNotDisplay	= 0,
        acDragDoNotDisplay	= 0,
        gcDragDisplayOnRequest	= 1,
        acDragDisplayOnRequest	= 1,
        gcDragDisplayAutomatically	= 2,
        acDragDisplayAutomatically	= 2
    } 	GcDragDisplayMode;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("7EEA1A75-94F7-4DE3-A3AA-7200F7779A6B") 
enum GcGRXDemandLoad
    {
        gcDemanLoadDisable	= 0,
        acDemanLoadDisable	= 0,
        gcDemandLoadOnObjectDetect	= 1,
        acDemandLoadOnObjectDetect	= 1,
        gcDemandLoadCmdInvoke	= 2,
        acDemandLoadCmdInvoke	= 2
    } 	GcGRXDemandLoad;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("4F51B51A-5206-46DD-AE29-4BD4B27EEBB5") 
enum GcTextFontStyle
    {
        gcFontRegular	= 0,
        acFontRegular	= 0,
        gcFontItalic	= 1,
        acFontItalic	= 1,
        gcFontBold	= 2,
        acFontBold	= 2,
        gcFontBoldItalic	= 3,
        acFontBoldItalic	= 3
    } 	GcTextFontStyle;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("D4D91852-A007-4A46-B7BF-9A620F7E7AAE") 
enum GcProxyImage
    {
        gcProxyNotShow	= 0,
        acProxyNotShow	= 0,
        gcProxyShow	= 1,
        acProxyShow	= 1,
        gcProxyBoundingBox	= 2,
        acProxyBoundingBox	= 2
    } 	GcProxyImage;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("4B10169D-0C86-457D-B68A-8A270EB9574A") 
enum GcKeyboardPriority
    {
        gcKeyboardRunningObjSnap	= 0,
        acKeyboardRunningObjSnap	= 0,
        gcKeyboardEntry	= 1,
        acKeyboardEntry	= 1,
        gcKeyboardEntryExceptScripts	= 2,
        acKeyboardEntryExceptScripts	= 2
    } 	GcKeyboardPriority;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("65F97AAF-90BA-458C-A49F-23CB476A0F54") 
enum GcMenuGroupType
    {
        gcBaseMenuGroup	= 0,
        acBaseMenuGroup	= 0,
        gcPartialMenuGroup	= 1,
        acPartialMenuGroup	= 1
    } 	GcMenuGroupType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("D13B0071-D1E1-486C-B00F-FEEE29D4B119") 
enum GcMenuFileType
    {
        gcMenuFileCompiled	= 0,
        acMenuFileCompiled	= 0,
        gcMenuFileSource	= 1,
        acMenuFileSource	= 1
    } 	GcMenuFileType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("8CEE5DD6-6B62-4156-9DB8-AEC92E41DABE") 
enum GcMenuItemType
    {
        gcMenuItem	= 0,
        acMenuItem	= 0,
        gcMenuSeparator	= 1,
        acMenuSeparator	= 1,
        gcMenuSubMenu	= 2,
        acMenuSubMenu	= 2
    } 	GcMenuItemType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("0E55923D-FFAB-4524-A57D-13275AACDC39") 
enum GcToolbarItemType
    {
        gcToolbarButton	= 0,
        acToolbarButton	= 0,
        gcToolbarSeparator	= 1,
        acToolbarSeparator	= 1,
        gcToolbarControl	= 2,
        acToolbarControl	= 2,
        gcToolbarFlyout	= 3,
        acToolbarFlyout	= 3
    } 	GcToolbarItemType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("4C92FD38-C569-41A7-835A-9EC9303DEE05") 
enum GcToolbarDockStatus
    {
        gcToolbarDockTop	= 0,
        acToolbarDockTop	= 0,
        gcToolbarDockBottom	= 1,
        acToolbarDockBottom	= 1,
        gcToolbarDockLeft	= 2,
        acToolbarDockLeft	= 2,
        gcToolbarDockRight	= 3,
        acToolbarDockRight	= 3,
        gcToolbarFloating	= 4,
        acToolbarFloating	= 4
    } 	GcToolbarDockStatus;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("2F1D3844-B15D-4CF6-A3E5-27AF29665C65") 
enum GcLineWeight
    {
        gcLnWt000	= 0,
        acLnWt000	= 0,
        gcLnWt005	= 5,
        acLnWt005	= 5,
        gcLnWt009	= 9,
        acLnWt009	= 9,
        gcLnWt013	= 13,
        acLnWt013	= 13,
        gcLnWt015	= 15,
        acLnWt015	= 15,
        gcLnWt018	= 18,
        acLnWt018	= 18,
        gcLnWt020	= 20,
        acLnWt020	= 20,
        gcLnWt025	= 25,
        acLnWt025	= 25,
        gcLnWt030	= 30,
        acLnWt030	= 30,
        gcLnWt035	= 35,
        acLnWt035	= 35,
        gcLnWt040	= 40,
        acLnWt040	= 40,
        gcLnWt050	= 50,
        acLnWt050	= 50,
        gcLnWt053	= 53,
        acLnWt053	= 53,
        gcLnWt060	= 60,
        acLnWt060	= 60,
        gcLnWt070	= 70,
        acLnWt070	= 70,
        gcLnWt080	= 80,
        acLnWt080	= 80,
        gcLnWt090	= 90,
        acLnWt090	= 90,
        gcLnWt100	= 100,
        acLnWt100	= 100,
        gcLnWt106	= 106,
        acLnWt106	= 106,
        gcLnWt120	= 120,
        acLnWt120	= 120,
        gcLnWt140	= 140,
        acLnWt140	= 140,
        gcLnWt158	= 158,
        acLnWt158	= 158,
        gcLnWt200	= 200,
        acLnWt200	= 200,
        gcLnWt211	= 211,
        acLnWt211	= 211,
        gcLnWtByLayer	= -1,
        acLnWtByLayer	= -1,
        gcLnWtByBlock	= -2,
        acLnWtByBlock	= -2,
        gcLnWtByLwDefault	= -3,
        acLnWtByLwDefault	= -3
    } 	GcLineWeight;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("FA76A71A-F6B2-4CE0-BD00-05BE59EE49DA") 
enum GcWindowState
    {
        gcNorm	= 1,
        gcMin	= 2,
        gcMax	= 3,
        acNorm	= 1,
        acMin	= 2,
        acMax	= 3
    } 	GcWindowState;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("F3A9BA8B-3B45-4E06-8B73-0493C1980BF6") 
enum GcPlotPaperUnits
    {
        gcInches	= 0,
        acInches	= 0,
        gcMillimeters	= 1,
        acMillimeters	= 1,
        gcPixels	= 2,
        acPixels	= 2
    } 	GcPlotPaperUnits;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("2225C720-6EB7-4F33-A89E-9B0A76106BF8") 
enum GcPlotRotation
    {
        gc0degrees	= 0,
        ac0degrees	= 0,
        gc90degrees	= 1,
        ac90degrees	= 1,
        gc180degrees	= 2,
        ac180degrees	= 2,
        gc270degrees	= 3,
        ac270degrees	= 3
    } 	GcPlotRotation;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("142CC758-BEEE-40C6-A3C2-0243C44F3FCF") 
enum GcPlotType
    {
        gcDisplay	= 0,
        acDisplay	= 0,
        gcExtents	= 1,
        acExtents	= 1,
        gcLimits	= 2,
        acLimits	= 2,
        gcView	= 3,
        acView	= 3,
        gcWindow	= 4,
        acWindow	= 4,
        gcLayout	= 5,
        acLayout	= 5
    } 	GcPlotType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("EB3DF7A8-D130-4396-965C-8BBE256B545D") 
enum GcPlotScale
    {
        gcScaleToFit	= 0,
        acScaleToFit	= 0,
        gc1_128in_1ft	= 1,
        ac1_128in_1ft	= 1,
        gc1_64in_1ft	= 2,
        ac1_64in_1ft	= 2,
        gc1_32in_1ft	= 3,
        ac1_32in_1ft	= 3,
        gc1_16in_1ft	= 4,
        ac1_16in_1ft	= 4,
        gc3_32in_1ft	= 5,
        ac3_32in_1ft	= 5,
        gc1_8in_1ft	= 6,
        ac1_8in_1ft	= 6,
        gc3_16in_1ft	= 7,
        ac3_16in_1ft	= 7,
        gc1_4in_1ft	= 8,
        ac1_4in_1ft	= 8,
        gc3_8in_1ft	= 9,
        ac3_8in_1ft	= 9,
        gc1_2in_1ft	= 10,
        ac1_2in_1ft	= 10,
        gc3_4in_1ft	= 11,
        ac3_4in_1ft	= 11,
        gc1in_1ft	= 12,
        ac1in_1ft	= 12,
        gc3in_1ft	= 13,
        ac3in_1ft	= 13,
        gc6in_1ft	= 14,
        ac6in_1ft	= 14,
        gc1ft_1ft	= 15,
        ac1ft_1ft	= 15,
        gc1_1	= 16,
        ac1_1	= 16,
        gc1_2	= 17,
        ac1_2	= 17,
        gc1_4	= 18,
        ac1_4	= 18,
        gc1_5	= 19,
        ac1_5	= 19,
        gc1_8	= 20,
        ac1_8	= 20,
        gc1_10	= 21,
        ac1_10	= 21,
        gc1_16	= 22,
        ac1_16	= 22,
        gc1_20	= 23,
        ac1_20	= 23,
        gc1_30	= 24,
        ac1_30	= 24,
        gc1_40	= 25,
        ac1_40	= 25,
        gc1_50	= 26,
        ac1_50	= 26,
        gc1_100	= 27,
        ac1_100	= 27,
        gc2_1	= 28,
        ac2_1	= 28,
        gc4_1	= 29,
        ac4_1	= 29,
        gc8_1	= 30,
        ac8_1	= 30,
        gc10_1	= 31,
        ac10_1	= 31,
        gc100_1	= 32,
        ac100_1	= 32
    } 	GcPlotScale;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("FCB110C6-EDC5-4A19-B86C-2034D11EDDF9") 
enum GcAlignment
    {
        gcAlignmentLeft	= 0,
        acAlignmentLeft	= 0,
        gcAlignmentCenter	= 1,
        acAlignmentCenter	= 1,
        gcAlignmentRight	= 2,
        acAlignmentRight	= 2,
        gcAlignmentAligned	= 3,
        acAlignmentAligned	= 3,
        gcAlignmentMiddle	= 4,
        acAlignmentMiddle	= 4,
        gcAlignmentFit	= 5,
        acAlignmentFit	= 5,
        gcAlignmentTopLeft	= 6,
        acAlignmentTopLeft	= 6,
        gcAlignmentTopCenter	= 7,
        acAlignmentTopCenter	= 7,
        gcAlignmentTopRight	= 8,
        acAlignmentTopRight	= 8,
        gcAlignmentMiddleLeft	= 9,
        acAlignmentMiddleLeft	= 9,
        gcAlignmentMiddleCenter	= 10,
        acAlignmentMiddleCenter	= 10,
        gcAlignmentMiddleRight	= 11,
        acAlignmentMiddleRight	= 11,
        gcAlignmentBottomLeft	= 12,
        acAlignmentBottomLeft	= 12,
        gcAlignmentBottomCenter	= 13,
        acAlignmentBottomCenter	= 13,
        gcAlignmentBottomRight	= 14,
        acAlignmentBottomRight	= 14
    } 	GcAlignment;

typedef /* [public][uuid] */  DECLSPEC_UUID("B568C5D8-B670-41F3-8A74-DF874C895BE6") GcColor GCAD_COLOR;

typedef /* [public][uuid] */  DECLSPEC_UUID("F4720841-0C0A-4094-B6C5-1135246B9633") BSTR GCAD_LAYER;

typedef /* [public][uuid] */  DECLSPEC_UUID("E207648D-6888-4DE2-89F1-3A660A5FE2D1") BSTR GCAD_LTYPE;

typedef /* [public][uuid] */  DECLSPEC_UUID("97FE5D87-C612-4ED3-B31C-D62DD9B45EDF") long GCAD_NULL;

typedef /* [public][uuid] */  DECLSPEC_UUID("9C77FA7E-BE57-4BF7-A2E2-67D966E6F3E0") double GCAD_DISTANCE;

typedef /* [public][uuid] */  DECLSPEC_UUID("345D4C7C-75FF-4119-BEDB-6F659B0751DE") double GCAD_ANGLE;

typedef /* [public][uuid] */  DECLSPEC_UUID("8A2D2752-230A-426A-9D39-EC1EC4CA3698") GcLineWeight GCAD_LWEIGHT;

typedef /* [public][uuid] */  DECLSPEC_UUID("9ABF9B8E-3026-484F-83BD-54FCD2D105E1") double GCAD_NOUNITS;

typedef /* [public][uuid] */  DECLSPEC_UUID("8B949E30-584A-4092-B585-BA23EE40D3D1") VARIANT GCAD_POINT;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("BC79B554-70BC-470F-A9F8-D30FC13B043D") 
enum GcLineSpacingStyle
    {
        gcLineSpacingStyleAtLeast	= 1,
        acLineSpacingStyleAtLeast	= 1,
        gcLineSpacingStyleExactly	= 2,
        acLineSpacingStyleExactly	= 2
    } 	GcLineSpacingStyle;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("D4DA98D1-1803-4461-AC88-2BA74ED6FB83") 
enum GcDimPrecision
    {
        gcDimPrecisionZero	= 0,
        acDimPrecisionZero	= 0,
        gcDimPrecisionOne	= 1,
        acDimPrecisionOne	= 1,
        gcDimPrecisionTwo	= 2,
        acDimPrecisionTwo	= 2,
        gcDimPrecisionThree	= 3,
        acDimPrecisionThree	= 3,
        gcDimPrecisionFour	= 4,
        acDimPrecisionFour	= 4,
        gcDimPrecisionFive	= 5,
        acDimPrecisionFive	= 5,
        gcDimPrecisionSix	= 6,
        acDimPrecisionSix	= 6,
        gcDimPrecisionSeven	= 7,
        acDimPrecisionSeven	= 7,
        gcDimPrecisionEight	= 8,
        acDimPrecisionEight	= 8
    } 	GcDimPrecision;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("41307F97-1B55-4401-90B3-90C0177EA42C") 
enum GcDimUnits
    {
        gcDimScientific	= 1,
        acDimScientific	= 1,
        gcDimDecimal	= 2,
        acDimDecimal	= 2,
        gcDimEngineering	= 3,
        acDimEngineering	= 3,
        gcDimArchitecturalStacked	= 4,
        acDimArchitecturalStacked	= 4,
        gcDimFractionalStacked	= 5,
        acDimFractionalStacked	= 5,
        gcDimArchitectural	= 6,
        acDimArchitectural	= 6,
        gcDimFractional	= 7,
        acDimFractional	= 7,
        gcDimWindowsDesktop	= 8,
        acDimWindowsDesktop	= 8
    } 	GcDimUnits;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("64BFAAC5-FF85-4B54-9BF5-4ACC665FD196") 
enum GcDimLUnits
    {
        gcDimLScientific	= 1,
        acDimLScientific	= 1,
        gcDimLDecimal	= 2,
        acDimLDecimal	= 2,
        gcDimLEngineering	= 3,
        acDimLEngineering	= 3,
        gcDimLArchitectural	= 4,
        acDimLArchitectural	= 4,
        gcDimLFractional	= 5,
        acDimLFractional	= 5,
        gcDimLWindowsDesktop	= 6,
        acDimLWindowsDesktop	= 6
    } 	GcDimLUnits;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("91590FEB-88CA-4456-BEFF-85FD8EF80132") 
enum GcDimArrowheadType
    {
        gcArrowDefault	= 0,
        acArrowDefault	= 0,
        gcArrowClosedBlank	= 1,
        acArrowClosedBlank	= 1,
        gcArrowClosed	= 2,
        acArrowClosed	= 2,
        gcArrowDot	= 3,
        acArrowDot	= 3,
        gcArrowArchTick	= 4,
        acArrowArchTick	= 4,
        gcArrowOblique	= 5,
        acArrowOblique	= 5,
        gcArrowOpen	= 6,
        acArrowOpen	= 6,
        gcArrowOrigin	= 7,
        acArrowOrigin	= 7,
        gcArrowOrigin2	= 8,
        acArrowOrigin2	= 8,
        gcArrowOpen90	= 9,
        acArrowOpen90	= 9,
        gcArrowOpen30	= 10,
        acArrowOpen30	= 10,
        gcArrowDotSmall	= 11,
        acArrowDotSmall	= 11,
        gcArrowDotBlank	= 12,
        acArrowDotBlank	= 12,
        gcArrowSmall	= 13,
        acArrowSmall	= 13,
        gcArrowBoxBlank	= 14,
        acArrowBoxBlank	= 14,
        gcArrowBoxFilled	= 15,
        acArrowBoxFilled	= 15,
        gcArrowDatumBlank	= 16,
        acArrowDatumBlank	= 16,
        gcArrowDatumFilled	= 17,
        acArrowDatumFilled	= 17,
        gcArrowIntegral	= 18,
        acArrowIntegral	= 18,
        gcArrowNone	= 19,
        acArrowNone	= 19,
        gcArrowUserDefined	= 20,
        acArrowUserDefined	= 20
    } 	GcDimArrowheadType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("CFCB7F43-877E-4F74-A3D2-BEB35BE2D200") 
enum GcDimCenterType
    {
        gcCenterMark	= 0,
        acCenterMark	= 0,
        gcCenterLine	= 1,
        acCenterLine	= 1,
        gcCenterNone	= 2,
        acCenterNone	= 2
    } 	GcDimCenterType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("C4C8EC81-059F-4E67-BB96-BC2484A7D589") 
enum GcDimFit
    {
        gcTextAndArrows	= 0,
        acTextAndArrows	= 0,
        gcArrowsOnly	= 1,
        acArrowsOnly	= 1,
        gcTextOnly	= 2,
        acTextOnly	= 2,
        gcBestFit	= 3,
        acBestFit	= 3
    } 	GcDimFit;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("09FA8827-59C9-49E1-9840-CAED5FC8B789") 
enum GcDimFractionType
    {
        gcHorizontal	= 0,
        acHorizontal	= 0,
        gcDiagonal	= 1,
        acDiagonal	= 1,
        gcNotStacked	= 2,
        acNotStacked	= 2
    } 	GcDimFractionType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("8C9BD102-A743-407D-BBFE-2A24D017C6C0") 
enum GcDimArcLengthSymbol
    {
        gcSymInFront	= 0,
        acSymInFront	= 0,
        gcSymAbove	= 1,
        acSymAbove	= 1,
        gcSymNone	= 2,
        acSymNone	= 2
    } 	GcDimArcLengthSymbol;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("394E0F3E-4D16-4C40-8A28-96175D61A046") 
enum GcDimHorizontalJustification
    {
        gcHorzCentered	= 0,
        acHorzCentered	= 0,
        gcFirstExtensionLine	= 1,
        acFirstExtensionLine	= 1,
        gcSecondExtensionLine	= 2,
        acSecondExtensionLine	= 2,
        gcOverFirstExtension	= 3,
        acOverFirstExtension	= 3,
        gcOverSecondExtension	= 4,
        acOverSecondExtension	= 4
    } 	GcDimHorizontalJustification;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("A6CFC087-5340-443D-ADEB-EE4DF33C688B") 
enum GcDimVerticalJustification
    {
        gcVertCentered	= 0,
        acVertCentered	= 0,
        gcAbove	= 1,
        acAbove	= 1,
        gcOutside	= 2,
        acOutside	= 2,
        gcJIS	= 3,
        acJIS	= 3,
        gcUnder	= 4,
        acUnder	= 4
    } 	GcDimVerticalJustification;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("D0E2084E-7E95-43B7-B017-37D058BF9AC3") 
enum GcDimTextMovement
    {
        gcDimLineWithText	= 0,
        acDimLineWithText	= 0,
        gcMoveTextAddLeader	= 1,
        acMoveTextAddLeader	= 1,
        gcMoveTextNoLeader	= 2,
        acMoveTextNoLeader	= 2
    } 	GcDimTextMovement;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("E61700DF-0DC0-4D52-9C26-2AEC474341FE") 
enum GcDimToleranceMethod
    {
        gcTolNone	= 0,
        acTolNone	= 0,
        gcTolSymmetrical	= 1,
        acTolSymmetrical	= 1,
        gcTolDeviation	= 2,
        acTolDeviation	= 2,
        gcTolLimits	= 3,
        acTolLimits	= 3,
        gcTolBasic	= 4,
        acTolBasic	= 4
    } 	GcDimToleranceMethod;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("07C9688E-793D-4DCE-B8E7-E706AB402E72") 
enum GcDimToleranceJustify
    {
        gcTolBottom	= 0,
        acTolBottom	= 0,
        gcTolMiddle	= 1,
        acTolMiddle	= 1,
        gcTolTop	= 2,
        acTolTop	= 2
    } 	GcDimToleranceJustify;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("178E84B2-BD76-4A2C-B684-BB72EBC0F270") 
enum GcViewportScale
    {
        gcVpScaleToFit	= 0,
        acVpScaleToFit	= 0,
        gcVpCustomScale	= 1,
        acVpCustomScale	= 1,
        gcVp1_1	= 2,
        acVp1_1	= 2,
        gcVp1_2	= 3,
        acVp1_2	= 3,
        gcVp1_4	= 4,
        acVp1_4	= 4,
        gcVp1_5	= 5,
        acVp1_5	= 5,
        gcVp1_8	= 6,
        acVp1_8	= 6,
        gcVp1_10	= 7,
        acVp1_10	= 7,
        gcVp1_16	= 8,
        acVp1_16	= 8,
        gcVp1_20	= 9,
        acVp1_20	= 9,
        gcVp1_30	= 10,
        acVp1_30	= 10,
        gcVp1_40	= 11,
        acVp1_40	= 11,
        gcVp1_50	= 12,
        acVp1_50	= 12,
        gcVp1_100	= 13,
        acVp1_100	= 13,
        gcVp2_1	= 14,
        acVp2_1	= 14,
        gcVp4_1	= 15,
        acVp4_1	= 15,
        gcVp8_1	= 16,
        acVp8_1	= 16,
        gcVp10_1	= 17,
        acVp10_1	= 17,
        gcVp100_1	= 18,
        acVp100_1	= 18,
        gcVp1_128in_1ft	= 19,
        acVp1_128in_1ft	= 19,
        gcVp1_64in_1ft	= 20,
        acVp1_64in_1ft	= 20,
        gcVp1_32in_1ft	= 21,
        acVp1_32in_1ft	= 21,
        gcVp1_16in_1ft	= 22,
        acVp1_16in_1ft	= 22,
        gcVp3_32in_1ft	= 23,
        acVp3_32in_1ft	= 23,
        gcVp1_8in_1ft	= 24,
        acVp1_8in_1ft	= 24,
        gcVp3_16in_1ft	= 25,
        acVp3_16in_1ft	= 25,
        gcVp1_4in_1ft	= 26,
        acVp1_4in_1ft	= 26,
        gcVp3_8in_1ft	= 27,
        acVp3_8in_1ft	= 27,
        gcVp1_2in_1ft	= 28,
        acVp1_2in_1ft	= 28,
        gcVp3_4in_1ft	= 29,
        acVp3_4in_1ft	= 29,
        gcVp1in_1ft	= 30,
        acVp1in_1ft	= 30,
        gcVp1and1_2in_1ft	= 31,
        acVp1and1_2in_1ft	= 31,
        gcVp3in_1ft	= 32,
        acVp3in_1ft	= 32,
        gcVp6in_1ft	= 33,
        acVp6in_1ft	= 33,
        gcVp1ft_1ft	= 34,
        acVp1ft_1ft	= 34
    } 	GcViewportScale;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("7B1DBC84-AB4F-43D9-AC59-16BA2963808A") 
enum GcISOPenWidth
    {
        gcPenWidth013	= 13,
        acPenWidth013	= 13,
        gcPenWidth018	= 18,
        acPenWidth018	= 18,
        gcPenWidth025	= 25,
        acPenWidth025	= 25,
        gcPenWidth035	= 35,
        acPenWidth035	= 35,
        gcPenWidth050	= 50,
        acPenWidth050	= 50,
        gcPenWidth070	= 70,
        acPenWidth070	= 70,
        gcPenWidth100	= 100,
        acPenWidth100	= 100,
        gcPenWidth140	= 140,
        acPenWidth140	= 140,
        gcPenWidth200	= 200,
        acPenWidth200	= 200,
        gcPenWidthUnk	= -1,
        acPenWidthUnk	= -1
    } 	GcISOPenWidth;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("176637C1-473C-475B-9E7B-556C652BD50F") 
enum GcSaveAsType
    {
        gcR09_dxf	= -5,
        acR09_dxf	= -5,
        gcR10_dxf	= -4,
        acR10_dxf	= -4,
        gcR12_dwg	= -3,
        acR12_dwg	= -3,
        gcUnknown	= -1,
        acUnknown	= -1,
        gcR12_dxf	= 1,
        acR12_dxf	= 1,
        gcR13_dwg	= 4,
        acR13_dwg	= 4,
        gcR13_dxf	= 5,
        acR13_dxf	= 5,
        gcR14_dwg	= 8,
        acR14_dwg	= 8,
        gcR14_dxf	= 9,
        acR14_dxf	= 9,
        gc2000_dwg	= 12,
        ac2000_dwg	= 12,
        gc2000_dxf	= 13,
        ac2000_dxf	= 13,
        gc2000_Template	= 14,
        ac2000_Template	= 14,
        gc2004_dwg	= 24,
        ac2004_dwg	= 24,
        gc2004_dxf	= 25,
        ac2004_dxf	= 25,
        gc2004_Template	= 26,
        ac2004_Template	= 26,
        gc2007_dwg	= 36,
        ac2007_dwg	= 36,
        gc2007_dxf	= 37,
        ac2007_dxf	= 37,
        gc2007_Template	= 38,
        ac2007_Template	= 38,
        gc2010_dwg	= 48,
        ac2010_dwg	= 48,
        gc2010_dxf	= 49,
        ac2010_dxf	= 49,
        gc2010_Template	= 50,
        ac2010_Template	= 50,
        gc2013_dwg	= 60,
        ac2013_dwg	= 60,
        gc2013_dxf	= 61,
        ac2013_dxf	= 61,
        gc2013_Template	= 62,
        ac2013_Template	= 62,
        gc2018_dwg	= 64,
        ac2018_dwg	= 64,
        gc2018_dxf	= 65,
        ac2018_dxf	= 65,
        gc2018_Template	= 66,
        ac2018_Template	= 66,
        gcNative	= 64,
        acNative	= 64,
        gcR15_dwg	= 12,
        acR15_dwg	= 12,
        gcR15_dxf	= 13,
        acR15_dxf	= 13,
        gcR15_Template	= 14,
        acR15_Template	= 14,
        gcR18_dwg	= 24,
        acR18_dwg	= 24,
        gcR18_dxf	= 25,
        acR18_dxf	= 25,
        gcR18_Template	= 26,
        acR18_Template	= 26
    } 	GcSaveAsType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("5DF4B9D6-7109-4CAE-A7B6-C943B61DB0BF") 
enum GcPrinterSpoolAlert
    {
        gcPrinterAlwaysAlert	= 0,
        acPrinterAlwaysAlert	= 0,
        gcPrinterAlertOnce	= 1,
        acPrinterAlertOnce	= 1,
        gcPrinterNeverAlertLogOnce	= 2,
        acPrinterNeverAlertLogOnce	= 2,
        gcPrinterNeverAlert	= 3,
        acPrinterNeverAlert	= 3
    } 	GcPrinterSpoolAlert;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("1BAA0E55-1331-4B52-9103-676A04AF89EB") 
enum GcPlotPolicyForNewDwgs
    {
        gcPolicyNewDefault	= 0,
        acPolicyNewDefault	= 0,
        gcPolicyNewLegacy	= 1,
        acPolicyNewLegacy	= 1
    } 	GcPlotPolicyForNewDwgs;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("B6FCCC74-E14B-44C6-B4D6-AB3EC194D9EB") 
enum GcPlotPolicyForLegacyDwgs
    {
        gcPolicyLegacyDefault	= 0,
        acPolicyLegacyDefault	= 0,
        gcPolicyLegacyQuery	= 1,
        acPolicyLegacyQuery	= 1,
        gcPolicyLegacyLegacy	= 2,
        acPolicyLegacyLegacy	= 2
    } 	GcPlotPolicyForLegacyDwgs;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("94AA477D-D0A1-49D9-8333-47157BDD3019") 
enum GcOleQuality
    {
        gcOQLineArt	= 0,
        acOQLineArt	= 0,
        gcOQText	= 1,
        acOQText	= 1,
        gcOQGraphics	= 2,
        acOQGraphics	= 2,
        gcOQPhoto	= 3,
        acOQPhoto	= 3,
        gcOQHighPhoto	= 4,
        acOQHighPhoto	= 4
    } 	GcOleQuality;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("6E2D50A9-F162-4A16-A2B4-AF2FEB4B1AB0") 
enum GcLoadPalette
    {
        gcPaletteByDrawing	= 0,
        acPaletteByDrawing	= 0,
        gcPaletteBySession	= 1,
        acPaletteBySession	= 1
    } 	GcLoadPalette;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("25E57607-1693-4B57-AE05-1660DB14BFDD") 
enum GcInsertUnits
    {
        gcInsertUnitsUnitless	= 0,
        acInsertUnitsUnitless	= 0,
        gcInsertUnitsInches	= 1,
        acInsertUnitsInches	= 1,
        gcInsertUnitsFeet	= 2,
        acInsertUnitsFeet	= 2,
        gcInsertUnitsMiles	= 3,
        acInsertUnitsMiles	= 3,
        gcInsertUnitsMillimeters	= 4,
        acInsertUnitsMillimeters	= 4,
        gcInsertUnitsCentimeters	= 5,
        acInsertUnitsCentimeters	= 5,
        gcInsertUnitsMeters	= 6,
        acInsertUnitsMeters	= 6,
        gcInsertUnitsKilometers	= 7,
        acInsertUnitsKilometers	= 7,
        gcInsertUnitsMicroinches	= 8,
        acInsertUnitsMicroinches	= 8,
        gcInsertUnitsMils	= 9,
        acInsertUnitsMils	= 9,
        gcInsertUnitsYards	= 10,
        acInsertUnitsYards	= 10,
        gcInsertUnitsAngstroms	= 11,
        acInsertUnitsAngstroms	= 11,
        gcInsertUnitsNanometers	= 12,
        acInsertUnitsNanometers	= 12,
        gcInsertUnitsMicrons	= 13,
        acInsertUnitsMicrons	= 13,
        gcInsertUnitsDecimeters	= 14,
        acInsertUnitsDecimeters	= 14,
        gcInsertUnitsDecameters	= 15,
        acInsertUnitsDecameters	= 15,
        gcInsertUnitsHectometers	= 16,
        acInsertUnitsHectometers	= 16,
        gcInsertUnitsGigameters	= 17,
        acInsertUnitsGigameters	= 17,
        gcInsertUnitsAstronomicalUnits	= 18,
        acInsertUnitsAstronomicalUnits	= 18,
        gcInsertUnitsLightYears	= 19,
        acInsertUnitsLightYears	= 19,
        gcInsertUnitsParsecs	= 20,
        acInsertUnitsParsecs	= 20,
        gcInsertUnitsUSSurveyFeet	= 21,
        acInsertUnitsUSSurveyFeet	= 21,
        gcInsertUnitsUSSurveyInch	= 22,
        acInsertUnitsUSSurveyInch	= 22,
        gcInsertUnitsUSSurveyYard	= 23,
        acInsertUnitsUSSurveyYard	= 23,
        gcInsertUnitsUSSurveyMile	= 24,
        acInsertUnitsUSSurveyMile	= 24
    } 	GcInsertUnits;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("CD528E7A-19C3-4B6C-9BA6-0B9658F63C84") 
enum GcAlignmentPointAcquisition
    {
        gcAlignPntAcquisitionAutomatic	= 0,
        acAlignPntAcquisitionAutomatic	= 0,
        gcAlignPntAcquisitionShiftToAcquire	= 1,
        acAlignPntAcquisitionShiftToAcquire	= 1
    } 	GcAlignmentPointAcquisition;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("913F6214-05BF-44E9-B2DC-590F08305394") 
enum GcInsertUnitsAction
    {
        gcInsertUnitsPrompt	= 0,
        acInsertUnitsPrompt	= 0,
        gcInsertUnitsAutoAssign	= 1,
        acInsertUnitsAutoAssign	= 1
    } 	GcInsertUnitsAction;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("E00455FF-DF26-47B5-8074-F3CCCB82143E") 
enum GcPlotPolicy
    {
        gcPolicyNamed	= 0,
        acPolicyNamed	= 0,
        gcPolicyLegacy	= 1,
        acPolicyLegacy	= 1
    } 	GcPlotPolicy;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("360D737D-4DD6-4960-95E4-63584AA26F28") 
enum GcDrawingAreaShortCutMenu
    {
        gcNoDrawingAreaShortCutMenu	= 0,
        acNoDrawingAreaShortCutMenu	= 0,
        gcUseDefaultDrawingAreaShortCutMenu	= 1,
        acUseDefaultDrawingAreaShortCutMenu	= 1
    } 	GcDrawingAreaShortCutMenu;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("ABB2BF5C-3C1D-4C8B-9FFE-74D94E4CAFD5") 
enum GcDrawingAreaSCMDefault
    {
        gcRepeatLastCommand	= 0,
        acRepeatLastCommand	= 0,
        gcSCM	= 1,
        acSCM	= 1
    } 	GcDrawingAreaSCMDefault;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("401734A0-9D72-4735-881B-06F5DD94468E") 
enum GcDrawingAreaSCMEdit
    {
        gcEdRepeatLastCommand	= 0,
        acEdRepeatLastCommand	= 0,
        gcEdSCM	= 1,
        acEdSCM	= 1
    } 	GcDrawingAreaSCMEdit;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("401B99EA-CBD5-4304-BA6D-2C8D3D5EF14D") 
enum GcDrawingAreaSCMCommand
    {
        gcEnter	= 0,
        acEnter	= 0,
        gcEnableSCMOptions	= 1,
        acEnableSCMOptions	= 1,
        gcEnableSCM	= 2,
        acEnableSCM	= 2
    } 	GcDrawingAreaSCMCommand;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("EADB868B-B57D-471D-81D7-72C44776913E") 
enum GcLayerStateMask
    {
        gcLsNone	= 0,
        acLsNone	= 0,
        gcLsOn	= 1,
        acLsOn	= 1,
        gcLsFrozen	= 2,
        acLsFrozen	= 2,
        gcLsLocked	= 4,
        acLsLocked	= 4,
        gcLsPlot	= 8,
        acLsPlot	= 8,
        gcLsNewViewport	= 16,
        acLsNewViewport	= 16,
        gcLsColor	= 32,
        acLsColor	= 32,
        gcLsLineType	= 64,
        acLsLineType	= 64,
        gcLsLineWeight	= 128,
        acLsLineWeight	= 128,
        gcLsPlotStyle	= 256,
        acLsPlotStyle	= 256,
        gcLsAll	= 65535,
        acLsAll	= 65535
    } 	GcLayerStateMask;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("C0309FA0-B43D-4B24-9A6F-6E39BC7CF635") 
enum GcShadePlot
    {
        gcShadePlotAsDisplayed	= 0,
        acShadePlotAsDisplayed	= 0,
        gcShadePlotWireframe	= 1,
        acShadePlotWireframe	= 1,
        gcShadePlotHidden	= 2,
        acShadePlotHidden	= 2,
        gcShadePlotRendered	= 3,
        acShadePlotRendered	= 3
    } 	GcShadePlot;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("97BDE847-E615-45E1-8298-CE6A9C55F7AD") 
enum GcHatchObjectType
    {
        gcHatchObject	= 0,
        acHatchObject	= 0,
        gcGradientObject	= 1,
        acGradientObject	= 1
    } 	GcHatchObjectType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("C2A3FC9C-D039-4C18-86C0-7130802CAEDF") 
enum GcGradientPatternType
    {
        gcPreDefinedGradient	= 0,
        acPreDefinedGradient	= 0,
        gcUserDefinedGradient	= 1,
        acUserDefinedGradient	= 1
    } 	GcGradientPatternType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("90352834-81B8-4FC9-A997-5A9AC552EF72") 
enum GcTableDirection
    {
        gcTableTopToBottom	= 0,
        acTableTopToBottom	= 0,
        gcTableBottomToTop	= 1,
        acTableBottomToTop	= 1
    } 	GcTableDirection;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("AE167472-6B3F-440A-B78E-190E68B81451") 
enum GcCellAlignment
    {
        gcTopLeft	= 1,
        acTopLeft	= 1,
        gcTopCenter	= 2,
        acTopCenter	= 2,
        gcTopRight	= 3,
        acTopRight	= 3,
        gcMiddleLeft	= 4,
        acMiddleLeft	= 4,
        gcMiddleCenter	= 5,
        acMiddleCenter	= 5,
        gcMiddleRight	= 6,
        acMiddleRight	= 6,
        gcBottomLeft	= 7,
        acBottomLeft	= 7,
        gcBottomCenter	= 8,
        acBottomCenter	= 8,
        gcBottomRight	= 9,
        acBottomRight	= 9
    } 	GcCellAlignment;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("0A4D5E63-C052-4AC8-8DD5-5BA636BE0F44") 
enum GcRowType
    {
        gcUnknownRow	= 0,
        acUnknownRow	= 0,
        gcDataRow	= 1,
        acDataRow	= 1,
        gcTitleRow	= 2,
        acTitleRow	= 2,
        gcHeaderRow	= 4,
        acHeaderRow	= 4
    } 	GcRowType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("20B956B5-E17F-43AA-8F23-5F3872C30DA2") 
enum GcValueDataType
    {
        gcUnknownDataType	= 0,
        acUnknownDataType	= 0,
        gcLong	= 1,
        acLong	= 1,
        gcDouble	= 2,
        acDouble	= 2,
        gcString	= 4,
        acString	= 4,
        gcDate	= 8,
        acDate	= 8,
        gcPoint2d	= 16,
        acPoint2d	= 16,
        gcPoint3d	= 32,
        acPoint3d	= 32,
        gcObjectId	= 64,
        acObjectId	= 64,
        gcBuffer	= 128,
        acBuffer	= 128,
        gcResbuf	= 256,
        acResbuf	= 256,
        gcGeneral	= 512,
        acGeneral	= 512
    } 	GcValueDataType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("C3880C0F-CE7B-43A1-A972-011F3D306746") 
enum GcValueUnitType
    {
        gcUnitless	= 0,
        acUnitless	= 0,
        gcUnitDistance	= 1,
        acUnitDistance	= 1,
        gcUnitAngle	= 2,
        acUnitAngle	= 2,
        gcUnitArea	= 4,
        acUnitArea	= 4,
        gcUnitVolume	= 8,
        acUnitVolume	= 8
    } 	GcValueUnitType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("F3F615A8-1E0B-4B7E-855B-89938F3D56A9") 
enum GcParseOption
    {
        gcParseOptionNone	= 0,
        acParseOptionNone	= 0,
        gcSetDefaultFormat	= 1,
        acSetDefaultFormat	= 1,
        gcPreserveMtextFormat	= 2,
        acPreserveMtextFormat	= 2
    } 	GcParseOption;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("49E94B89-85F3-4A34-B8FE-C0BA58A9D8D7") 
enum GcFormatOption
    {
        kFormatOptionNone	= 0,
        gcForEditing	= 1,
        acForEditing	= 1,
        gcForExpression	= 2,
        acForExpression	= 2,
        gcUseMaximumPrecision	= 4,
        acUseMaximumPrecision	= 4,
        gcIgnoreMtextFormat	= 8,
        acIgnoreMtextFormat	= 8
    } 	GcFormatOption;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("0C86F88E-7C12-454C-AE5E-08E85EA36BA4") 
enum GcGridLineType
    {
        gcInvalidGridLine	= 0,
        acInvalidGridLine	= 0,
        gcHorzTop	= 1,
        acHorzTop	= 1,
        gcHorzInside	= 2,
        acHorzInside	= 2,
        gcHorzBottom	= 4,
        acHorzBottom	= 4,
        gcVertLeft	= 8,
        acVertLeft	= 8,
        gcVertInside	= 16,
        acVertInside	= 16,
        gcVertRight	= 32,
        acVertRight	= 32
    } 	GcGridLineType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("A6142EEF-EAC9-4C02-87A7-542483D8B36F") 
enum GcCellType
    {
        gcUnknownCell	= 0,
        acUnknownCell	= 0,
        gcTextCell	= 1,
        acTextCell	= 1,
        gcBlockCell	= 2,
        acBlockCell	= 2
    } 	GcCellType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("43FD9231-0F44-4D05-9FA9-D312B5930A67") 
enum GcCellEdgeMask
    {
        gcTopMask	= 1,
        acTopMask	= 1,
        gcRightMask	= 2,
        acRightMask	= 2,
        gcBottomMask	= 4,
        acBottomMask	= 4,
        gcLeftMask	= 8,
        acLeftMask	= 8
    } 	GcCellEdgeMask;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("3D030981-15DF-4BB3-B698-0288768E3BBD") 
enum GcRotationAngle
    {
        gcDegreesUnknown	= -1,
        acDegreesUnknown	= -1,
        gcDegrees000	= 0,
        acDegrees000	= 0,
        gcDegrees090	= 1,
        acDegrees090	= 1,
        gcDegrees180	= 2,
        acDegrees180	= 2,
        gcDegrees270	= 3,
        acDegrees270	= 3
    } 	GcRotationAngle;

typedef /* [public][public][uuid] */  DECLSPEC_UUID("3427B7C6-7C99-40C4-8AA1-3FAABEE3402D") 
enum __MIDL___MIDL_itf_gxdb_0000_0000_0001
    {
        acMergeCellStyleNone	= 0,
        acMergeCellStyleCopyDuplicates	= 1,
        acMergeCellStyleOverwriteDuplicates	= 2,
        acMergeCellStyleConvertDuplicatesToOverrides	= 4,
        acMergeCellStyleIgnoreNewStyles	= 8,
        gcMergeCellStyleNone	= 0,
        gcMergeCellStyleCopyDuplicates	= 1,
        gcMergeCellStyleOverwriteDuplicates	= 2,
        gcMergeCellStyleConvertDuplicatesToOverrides	= 4,
        gcMergeCellStyleIgnoreNewStyles	= 8
    } 	GcMergeCellStyleOption;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("2CE34357-E4AD-4596-8490-265C88F8DC1F") 
enum GcSelectType
    {
        gcTableSelectWindow	= 1,
        acTableSelectWindow	= 1,
        gcTableSelectCrossing	= 2,
        acTableSelectCrossing	= 2
    } 	GcSelectType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("2FE66C68-CFFD-48BA-A93D-08A1FA5693E9") 
enum GcOleType
    {
        gcOTLink	= 1,
        acOTLink	= 1,
        gcOTEmbedded	= 2,
        acOTEmbedded	= 2,
        gcOTStatic	= 3,
        acOTStatic	= 3
    } 	GcOleType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("DC8B77B0-02EC-4445-9B6C-1178615C4A8C") 
enum GcOlePlotQuality
    {
        gcOPQMonochrome	= 0,
        acOPQMonochrome	= 0,
        gcOPQLowGraphics	= 1,
        acOPQLowGraphics	= 1,
        gcOPQHighGraphics	= 2,
        acOPQHighGraphics	= 2
    } 	GcOlePlotQuality;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("0C094F89-F816-4E80-AF34-ECC300C73A5B") 
enum GcTableStyleOverrides
    {
        gcTitleSuppressed	= 1,
        acTitleSuppressed	= 1,
        gcHeaderSuppressed	= 2,
        acHeaderSuppressed	= 2,
        gcFlowDirection	= 3,
        acFlowDirection	= 3,
        gcHorzCellMargin	= 4,
        acHorzCellMargin	= 4,
        gcVertCellMargin	= 5,
        acVertCellMargin	= 5,
        gcTitleRowColor	= 6,
        acTitleRowColor	= 6,
        gcHeaderRowColor	= 7,
        acHeaderRowColor	= 7,
        gcDataRowColor	= 8,
        acDataRowColor	= 8,
        gcTitleRowFillNone	= 9,
        acTitleRowFillNone	= 9,
        gcHeaderRowFillNone	= 10,
        acHeaderRowFillNone	= 10,
        gcDataRowFillNone	= 11,
        acDataRowFillNone	= 11,
        gcTitleRowFillColor	= 12,
        acTitleRowFillColor	= 12,
        gcHeaderRowFillColor	= 13,
        acHeaderRowFillColor	= 13,
        gcDataRowFillColor	= 14,
        acDataRowFillColor	= 14,
        gcTitleRowAlignment	= 15,
        acTitleRowAlignment	= 15,
        gcHeaderRowAlignment	= 16,
        acHeaderRowAlignment	= 16,
        gcDataRowAlignment	= 17,
        acDataRowAlignment	= 17,
        gcTitleRowTextStyle	= 18,
        acTitleRowTextStyle	= 18,
        gcHeaderRowTextStyle	= 19,
        acHeaderRowTextStyle	= 19,
        gcDataRowTextStyle	= 20,
        acDataRowTextStyle	= 20,
        gcTitleRowTextHeight	= 21,
        acTitleRowTextHeight	= 21,
        gcHeaderRowTextHeight	= 22,
        acHeaderRowTextHeight	= 22,
        gcDataRowTextHeight	= 23,
        acDataRowTextHeight	= 23,
        gcTitleRowDataType	= 24,
        acTitleRowDataType	= 24,
        gcHeaderRowDataType	= 25,
        acHeaderRowDataType	= 25,
        gcDataRowDataType	= 26,
        acDataRowDataType	= 26,
        gcTitleHorzTopColor	= 40,
        acTitleHorzTopColor	= 40,
        gcTitleHorzInsideColor	= 41,
        acTitleHorzInsideColor	= 41,
        gcTitleHorzBottomColor	= 42,
        acTitleHorzBottomColor	= 42,
        gcTitleVertLeftColor	= 43,
        acTitleVertLeftColor	= 43,
        gcTitleVertInsideColor	= 44,
        acTitleVertInsideColor	= 44,
        gcTitleVertRightColor	= 45,
        acTitleVertRightColor	= 45,
        gcHeaderHorzTopColor	= 46,
        acHeaderHorzTopColor	= 46,
        gcHeaderHorzInsideColor	= 47,
        acHeaderHorzInsideColor	= 47,
        gcHeaderHorzBottomColor	= 48,
        acHeaderHorzBottomColor	= 48,
        gcHeaderVertLeftColor	= 49,
        acHeaderVertLeftColor	= 49,
        gcHeaderVertInsideColor	= 50,
        acHeaderVertInsideColor	= 50,
        gcHeaderVertRightColor	= 51,
        acHeaderVertRightColor	= 51,
        gcDataHorzTopColor	= 52,
        acDataHorzTopColor	= 52,
        gcDataHorzInsideColor	= 53,
        acDataHorzInsideColor	= 53,
        gcDataHorzBottomColor	= 54,
        acDataHorzBottomColor	= 54,
        gcDataVertLeftColor	= 55,
        acDataVertLeftColor	= 55,
        gcDataVertInsideColor	= 56,
        acDataVertInsideColor	= 56,
        gcDataVertRightColor	= 57,
        acDataVertRightColor	= 57,
        gcTitleHorzTopLineWeight	= 70,
        acTitleHorzTopLineWeight	= 70,
        gcTitleHorzInsideLineWeight	= 71,
        acTitleHorzInsideLineWeight	= 71,
        gcTitleHorzBottomLineWeight	= 72,
        acTitleHorzBottomLineWeight	= 72,
        gcTitleVertLeftLineWeight	= 73,
        acTitleVertLeftLineWeight	= 73,
        gcTitleVertInsideLineWeight	= 74,
        acTitleVertInsideLineWeight	= 74,
        gcTitleVertRightLineWeight	= 75,
        acTitleVertRightLineWeight	= 75,
        gcHeaderHorzTopLineWeight	= 76,
        acHeaderHorzTopLineWeight	= 76,
        gcHeaderHorzInsideLineWeight	= 77,
        acHeaderHorzInsideLineWeight	= 77,
        gcHeaderHorzBottomLineWeight	= 78,
        acHeaderHorzBottomLineWeight	= 78,
        gcHeaderVertLeftLineWeight	= 79,
        acHeaderVertLeftLineWeight	= 79,
        gcHeaderVertInsideLineWeight	= 80,
        acHeaderVertInsideLineWeight	= 80,
        gcHeaderVertRightLineWeight	= 81,
        acHeaderVertRightLineWeight	= 81,
        gcDataHorzTopLineWeight	= 82,
        acDataHorzTopLineWeight	= 82,
        gcDataHorzInsideLineWeight	= 83,
        acDataHorzInsideLineWeight	= 83,
        gcDataHorzBottomLineWeight	= 84,
        acDataHorzBottomLineWeight	= 84,
        gcDataVertLeftLineWeight	= 85,
        acDataVertLeftLineWeight	= 85,
        gcDataVertInsideLineWeight	= 86,
        acDataVertInsideLineWeight	= 86,
        gcDataVertRightLineWeight	= 87,
        acDataVertRightLineWeight	= 87,
        gcTitleHorzTopVisibility	= 100,
        acTitleHorzTopVisibility	= 100,
        gcTitleHorzInsideVisibility	= 101,
        acTitleHorzInsideVisibility	= 101,
        gcTitleHorzBottomVisibility	= 102,
        acTitleHorzBottomVisibility	= 102,
        gcTitleVertLeftVisibility	= 103,
        acTitleVertLeftVisibility	= 103,
        gcTitleVertInsideVisibility	= 104,
        acTitleVertInsideVisibility	= 104,
        gcTitleVertRightVisibility	= 105,
        acTitleVertRightVisibility	= 105,
        gcHeaderHorzTopVisibility	= 106,
        acHeaderHorzTopVisibility	= 106,
        gcHeaderHorzInsideVisibility	= 107,
        acHeaderHorzInsideVisibility	= 107,
        gcHeaderHorzBottomVisibility	= 108,
        acHeaderHorzBottomVisibility	= 108,
        gcHeaderVertLeftVisibility	= 109,
        acHeaderVertLeftVisibility	= 109,
        gcHeaderVertInsideVisibility	= 110,
        acHeaderVertInsideVisibility	= 110,
        gcHeaderVertRightVisibility	= 111,
        acHeaderVertRightVisibility	= 111,
        gcDataHorzTopVisibility	= 112,
        acDataHorzTopVisibility	= 112,
        gcDataHorzInsideVisibility	= 113,
        acDataHorzInsideVisibility	= 113,
        gcDataHorzBottomVisibility	= 114,
        acDataHorzBottomVisibility	= 114,
        gcDataVertLeftVisibility	= 115,
        acDataVertLeftVisibility	= 115,
        gcDataVertInsideVisibility	= 116,
        acDataVertInsideVisibility	= 116,
        gcDataVertRightVisibility	= 117,
        acDataVertRightVisibility	= 117,
        gcCellAlign	= 130,
        acCellAlign	= 130,
        gcCellBackgroundFillNone	= 131,
        acCellBackgroundFillNone	= 131,
        gcCellBackgroundColor	= 132,
        acCellBackgroundColor	= 132,
        gcCellContentColor	= 133,
        acCellContentColor	= 133,
        gcCellTextStyle	= 134,
        acCellTextStyle	= 134,
        gcCellTextHeight	= 135,
        acCellTextHeight	= 135,
        gcCellTopGridColor	= 136,
        acCellTopGridColor	= 136,
        gcCellRightGridColor	= 137,
        acCellRightGridColor	= 137,
        gcCellBottomGridColor	= 138,
        acCellBottomGridColor	= 138,
        gcCellLeftGridColor	= 139,
        acCellLeftGridColor	= 139,
        gcCellTopGridLineWeight	= 140,
        acCellTopGridLineWeight	= 140,
        gcCellRightGridLineWeight	= 141,
        acCellRightGridLineWeight	= 141,
        gcCellBottomGridLineWeight	= 142,
        acCellBottomGridLineWeight	= 142,
        gcCellLeftGridLineWeight	= 143,
        acCellLeftGridLineWeight	= 143,
        gcCellTopVisibility	= 144,
        acCellTopVisibility	= 144,
        gcCellRightVisibility	= 145,
        acCellRightVisibility	= 145,
        gcCellBottomVisibility	= 146,
        acCellBottomVisibility	= 146,
        gcCellLeftVisibility	= 147,
        acCellLeftVisibility	= 147,
        gcCellDataType	= 148,
        acCellDataType	= 148
    } 	GcTableStyleOverrides;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("6B719F5E-86E6-40C9-B3B9-8A93E611E79C") 
enum GcMLineJustification
    {
        gcTop	= 0,
        acTop	= 0,
        gcZero	= 1,
        acZero	= 1,
        gcBottom	= 2,
        acBottom	= 2
    } 	GcMLineJustification;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("32FDA5D2-695D-4CEA-8AF6-AD17F9BFF664") 
enum GcBlockScaling
    {
        gcAny	= 0,
        acAny	= 0,
        gcUniform	= 1,
        acUniform	= 1
    } 	GcBlockScaling;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("5DEDFB18-8AF4-48DB-8AA5-F76D1B32B58C") 
enum GcDynamicBlockReferencePropertyUnitsType
    {
        gcNoUnits	= 0,
        acNoUnits	= 0,
        gcAngular	= 1,
        acAngular	= 1,
        gcDistance	= 2,
        acDistance	= 2,
        gcArea	= 3,
        acArea	= 3
    } 	GcDynamicBlockReferencePropertyUnitsType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("05FA1DF4-932E-4898-BFEC-A8CE634101DE") 
enum GcSectionState
    {
        gcSectionStatePlane	= 1,
        acSectionStatePlane	= 1,
        gcSectionStateBoundary	= 2,
        acSectionStateBoundary	= 2,
        gcSectionStateVolume	= 4,
        acSectionStateVolume	= 4
    } 	GcSectionState;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("71641241-DD14-484C-9904-A1821AE1B53C") 
enum GcSectionState2
    {
        gcSectionState2Plane	= 1,
        acSectionState2Plane	= 1,
        gcSectionState2Slice	= 2,
        acSectionState2Slice	= 2,
        gcSectionState2Boundary	= 4,
        acSectionState2Boundary	= 4,
        gcSectionState2Volume	= 8,
        acSectionState2Volume	= 8
    } 	GcSectionState2;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("27C42DFF-CD4B-41C4-BC6B-0203FF4CE9C3") 
enum GcSectionSubItem
    {
        gcSectionSubItemkNone	= 0,
        acSectionSubItemkNone	= 0,
        gcSectionSubItemSectionLine	= 1,
        acSectionSubItemSectionLine	= 1,
        gcSectionSubItemSectionLineTop	= 2,
        acSectionSubItemSectionLineTop	= 2,
        gcSectionSubItemSectionLineBottom	= 4,
        acSectionSubItemSectionLineBottom	= 4,
        gcSectionSubItemBackLine	= 8,
        acSectionSubItemBackLine	= 8,
        gcSectionSubItemBackLineTop	= 16,
        acSectionSubItemBackLineTop	= 16,
        gcSectionSubItemBackLineBottom	= 32,
        acSectionSubItemBackLineBottom	= 32,
        gcSectionSubItemVerticalLineTop	= 64,
        acSectionSubItemVerticalLineTop	= 64,
        gcSectionSubItemVerticalLineBottom	= 128,
        acSectionSubItemVerticalLineBottom	= 128
    } 	GcSectionSubItem;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("37AA5A42-A7DA-4006-A846-CFB99B85ADAD") 
enum GcSectionType
    {
        gcSectionTypeLiveSection	= 1,
        acSectionTypeLiveSection	= 1,
        gcSectionType2dSection	= 2,
        acSectionType2dSection	= 2,
        gcSectionType3dSection	= 4,
        acSectionType3dSection	= 4
    } 	GcSectionType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("B198A86E-72D9-4DBF-9D40-52E0B52B4AF4") 
enum GcSectionGeneration
    {
        gcSectionGenerationSourceAllObjects	= 1,
        acSectionGenerationSourceAllObjects	= 1,
        gcSectionGenerationSourceSelectedObjects	= 2,
        acSectionGenerationSourceSelectedObjects	= 2,
        gcSectionGenerationDestinationNewBlock	= 16,
        acSectionGenerationDestinationNewBlock	= 16,
        gcSectionGenerationDestinationReplgceBlock	= 32,
        acSectionGenerationDestinationReplaceBlock	= 32,
        gcSectionGenerationDestinationFile	= 64,
        acSectionGenerationDestinationFile	= 64
    } 	GcSectionGeneration;

typedef /* [public][uuid] */  DECLSPEC_UUID("9E6FC9F4-7A98-4899-96C7-30B0A7E882BE") 
enum GcHelixConstrainType
    {
        gcTurnHeight	= 0,
        acTurnHeight	= 0,
        gcTurns	= 1,
        acTurns	= 1,
        gcHeight	= 2,
        acHeight	= 2
    } 	GcHelixConstrainType;

typedef /* [public][uuid] */  DECLSPEC_UUID("F5F54B86-30C3-4857-914D-1A60E73AF313") 
enum GcShadowDisplayType
    {
        gcCastsAndReceivesShadows	= 0,
        acCastsAndReceivesShadows	= 0,
        gcCastsShadows	= 1,
        acCastsShadows	= 1,
        gcReceivesShadows	= 2,
        acReceivesShadows	= 2,
        gcIgnoreShadows	= 3,
        acIgnoreShadows	= 3
    } 	GcShadowDisplayType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("C794775E-603A-43F0-B7AA-741F925160B1") 
enum GcLoftedSurfaceNormalType
    {
        gcRuled	= 0,
        acRuled	= 0,
        gcSmooth	= 1,
        acSmooth	= 1,
        gcFirstNormal	= 2,
        acFirstNormal	= 2,
        gcLastNormal	= 3,
        acLastNormal	= 3,
        gcEndsNormal	= 4,
        acEndsNormal	= 4,
        gcAllNormal	= 5,
        acAllNormal	= 5,
        gcUseDraftAngles	= 6,
        acUseDraftAngles	= 6
    } 	GcLoftedSurfaceNormalType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("4D9A3B1C-DAD6-419A-B77A-68506D6B057A") 
enum GcHelixTwistType
    {
        gcCCW	= 0,
        acCCW	= 0,
        gcCW	= 1,
        acCW	= 1
    } 	GcHelixTwistType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("E967F2DB-EF2E-4B99-8BC5-FDB5094FB025") 
enum GcUnderlayLayerOverrideType
    {
        gcNoOverrides	= 0,
        acNoOverrides	= 0,
        gcApplied	= 1,
        acApplied	= 1
    } 	GcUnderlayLayerOverrideType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("32038BD4-5714-420A-9183-DB4A6BBE44EE") 
enum GcTableFlowDirection
    {
        gcTableFlowRight	= 1,
        acTableFlowRight	= 1,
        gcTableFlowDownOrUp	= 2,
        acTableFlowDownOrUp	= 2,
        gcTableFlowLeft	= 4,
        acTableFlowLeft	= 4
    } 	GcTableFlowDirection;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("42361440-1EEB-45FB-9271-CEC0BBF027C1") 
enum GcCellMargin
    {
        gcCellMarginTop	= 1,
        acCellMarginTop	= 1,
        gcCellMarginLeft	= 2,
        acCellMarginLeft	= 2,
        gcCellMarginBottom	= 4,
        acCellMarginBottom	= 4,
        gcCellMarginRight	= 8,
        acCellMarginRight	= 8,
        gcCellMarginHorzSpacing	= 16,
        acCellMarginHorzSpacing	= 16,
        gcCellMarginVertSpacing	= 32,
        acCellMarginVertSpacing	= 32
    } 	GcCellMargin;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("880A43E4-9FEA-4B34-B8BD-1F204435BC41") 
enum GcCellContentLayout
    {
        gcCellContentLayoutFlow	= 1,
        acCellContentLayoutFlow	= 1,
        gcCellContentLayoutStackedHorizontal	= 2,
        acCellContentLayoutStackedHorizontal	= 2,
        gcCellContentLayoutStackedVertical	= 4,
        acCellContentLayoutStackedVertical	= 4
    } 	GcCellContentLayout;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("48EB8AFD-8CB6-4D94-8228-A15B170735A6") 
enum GcCellProperty
    {
        gcInvalidCellProperty	= 0,
        acInvalidCellProperty	= 0,
        gcLock	= 1,
        acLock	= 1,
        gcDataType	= 2,
        acDataType	= 2,
        gcDataFormat	= 4,
        acDataFormat	= 4,
        gcRotation	= 8,
        acRotation	= 8,
        gcScale	= 16,
        acScale	= 16,
        gcAlignmentProperty	= 32,
        acAlignmentProperty	= 32,
        gcContentColor	= 64,
        acContentColor	= 64,
        gcBackgroundColor	= 128,
        acBackgroundColor	= 128,
        gcTextStyle	= 256,
        acTextStyle	= 256,
        gcTextHeight	= 512,
        acTextHeight	= 512,
        gcMarginLeft	= 1024,
        acMarginLeft	= 1024,
        gcMarginTop	= 2048,
        acMarginTop	= 2048,
        gcMarginRight	= 4096,
        acMarginRight	= 4096,
        gcMarginBottom	= 8192,
        acMarginBottom	= 8192,
        gcEnableBackgroundColor	= 16384,
        acEnableBackgroundColor	= 16384,
        gcAutoScale	= 32768,
        acAutoScale	= 32768,
        gcMergeAll	= 0x10000,
        acMergeAll	= 0x10000,
        gcFlowDirBtoT	= 0x20000,
        acFlowDirBtoT	= 0x20000,
        gcContentLayout	= 0x40000,
        acContentLayout	= 0x40000,
        gcDataTypeAndFormat	= 6,
        acDataTypeAndFormat	= 6,
        gcContentProperties	= 33662,
        acContentProperties	= 33662,
        gcBitProperties	= 0x3c000,
        acBitProperties	= 0x3c000,
        gcAllCellProperties	= 0x7ffff,
        acAllCellProperties	= 0x7ffff
    } 	GcCellProperty;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("BD9C79A2-AF93-4F1A-93C9-40ACB9542E7C") 
enum GcGridLineStyle
    {
        gcGridLineStyleSingle	= 1,
        acGridLineStyleSingle	= 1,
        gcGridLineStyleDouble	= 2,
        acGridLineStyleDouble	= 2
    } 	GcGridLineStyle;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("3A816064-697B-4485-AC9E-A8B0BB4A54D9") 
enum GcDataLinkUpdateDirection
    {
        gcUpdateDataFromSource	= 1,
        acUpdateDataFromSource	= 1,
        gcUpdateSourceFromData	= 2,
        acUpdateSourceFromData	= 2
    } 	GcDataLinkUpdateDirection;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("CFEB86FD-9219-43AC-9E37-87E73A6AE9B6") 
enum GcDataLinkUpdateOption
    {
        gcUpdateOptionNone	= 0,
        acUpdateOptionNone	= 0,
        gcUpdateOptionOverwriteContentModifiedAfterUpdate	= 0x20000,
        acUpdateOptionOverwriteContentModifiedAfterUpdate	= 0x20000,
        gcUpdateOptionOverwriteFormatModifiedAfterUpdate	= 0x40000,
        acUpdateOptionOverwriteFormatModifiedAfterUpdate	= 0x40000,
        gcUpdateOptionUpdateFullSourceRange	= 0x80000,
        acUpdateOptionUpdateFullSourceRange	= 0x80000,
        gcUpdateOptionIncludeXrefs	= 0x100000,
        acUpdateOptionIncludeXrefs	= 0x100000
    } 	GcDataLinkUpdateOption;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("810FF9F4-BF42-49BF-ACA8-0363B66B6C7B") 
enum GcCellContentType
    {
        gcCellContentTypeUnknown	= 0,
        acCellContentTypeUnknown	= 0,
        gcCellContentTypeValue	= 1,
        acCellContentTypeValue	= 1,
        gcCellContentTypeField	= 2,
        acCellContentTypeField	= 2,
        gcCellContentTypeBlock	= 4,
        acCellContentTypeBlock	= 4
    } 	GcCellContentType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("2897902E-137C-4766-9F95-7EC65DE019E4") 
enum GcCellState
    {
        gcCellStateNone	= 0,
        acCellStateNone	= 0,
        gcCellStateContentLocked	= 1,
        acCellStateContentLocked	= 1,
        gcCellStateContentReadOnly	= 2,
        acCellStateContentReadOnly	= 2,
        gcCellStateFormatLocked	= 4,
        acCellStateFormatLocked	= 4,
        gcCellStateFormatReadOnly	= 8,
        acCellStateFormatReadOnly	= 8,
        gcCellStateLinked	= 16,
        acCellStateLinked	= 16,
        gcCellStateContentModified	= 32,
        acCellStateContentModified	= 32,
        gcCellStateFormatModified	= 64,
        acCellStateFormatModified	= 64
    } 	GcCellState;

typedef /* [public][public][uuid] */  DECLSPEC_UUID("EA652289-E2F1-43BB-A8E4-DCA723C1D1C7") 
enum __MIDL___MIDL_itf_gxdb_0000_0000_0002
    {
        kCellOptionNone	= 0,
        kInheritCellFormat	= 1
    } 	GcCellOption;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("F27823FC-B874-4AB9-8F8D-F2C492FB43D0") 
enum GcTextAttachmentType
    {
        acAttachmentTopOfTop	= 0,
        gcAttachmentTopOfTop	= 0,
        acAttachmentMiddleOfTop	= 1,
        gcAttachmentMiddleOfTop	= 1,
        acAttachmentBottomOfTop	= 2,
        gcAttachmentBottomOfTop	= 2,
        acAttachmentBottomOfTopLine	= 3,
        gcAttachmentBottomOfTopLine	= 3,
        acAttachmentMiddle	= 4,
        gcAttachmentMiddle	= 4,
        acAttachmentMiddleOfBottom	= 5,
        gcAttachmentMiddleOfBottom	= 5,
        acAttachmentBottomOfBottom	= 6,
        gcAttachmentBottomOfBottom	= 6,
        acAttachmentBottomLine	= 7,
        gcAttachmentBottomLine	= 7,
        acAttachmentAllLine	= 8,
        gcAttachmentAllLine	= 8
    } 	GcTextAttachmentType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("5577B48E-1AE6-495C-9B95-C32DEEBD3241") 
enum GcMLeaderType
    {
        acStraightLeader	= 1,
        gcStraightLeader	= 1,
        acSplineLeader	= 2,
        gcSplineLeader	= 2,
        acInVisibleLeader	= 0,
        gcInVisibleLeader	= 0
    } 	GcMLeaderType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("B9986EC4-BA56-49AB-9335-790BE780BDB2") 
enum GcMLeaderContentType
    {
        acNoneContent	= 0,
        gcNoneContent	= 0,
        acBlockContent	= 1,
        gcBlockContent	= 1,
        acMTextContent	= 2,
        gcMTextContent	= 2
    } 	GcMLeaderContentType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("C0B202D7-9A8D-44C4-86BA-059474C14C49") 
enum GcTextAlignmentType
    {
        acLeftAlignment	= 0,
        gcLeftAlignment	= 0,
        acCenterAlignment	= 1,
        gcCenterAlignment	= 1,
        acRightAlignment	= 2,
        gcRightAlignment	= 2
    } 	GcTextAlignmentType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("56D0D31D-312B-4F31-8FD2-1FF8A7A0D406") 
enum GcTextAngleType
    {
        acInsertAngle	= 0,
        gcInsertAngle	= 0,
        acHorizontalAngle	= 1,
        gcHorizontalAngle	= 1,
        acAlwaysRightReadingAngle	= 2,
        gcAlwaysRightReadingAngle	= 2
    } 	GcTextAngleType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("E036746D-5351-480A-ACFB-22AB4BC2389D") 
enum GcBlockConnectionType
    {
        acConnectExtents	= 0,
        gcConnectExtents	= 0,
        acConnectBase	= 1,
        gcConnectBase	= 1
    } 	GcBlockConnectionType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("0AB6C868-8EE3-425F-BDAB-35B81EE7E1EC") 
enum GcPredefBlockType
    {
        acBlockImperial	= 0,
        gcBlockImperial	= 0,
        acBlockSlot	= 1,
        gcBlockSlot	= 1,
        acBlockCircle	= 2,
        gcBlockCircle	= 2,
        acBlockBox	= 3,
        gcBlockBox	= 3,
        acBlockHexagon	= 4,
        gcBlockHexagon	= 4,
        acBlockTriangle	= 5,
        gcBlockTriangle	= 5,
        acBlockUserDefined	= 6,
        gcBlockUserDefined	= 6
    } 	GcPredefBlockType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("049F30C5-7296-4E4B-BED2-EDE48B7C41E3") 
enum GcDrawLeaderOrderType
    {
        acDrawLeaderHeadFirst	= 0,
        gcDrawLeaderHeadFirst	= 0,
        acDrawLeaderTailFirst	= 1,
        gcDrawLeaderTailFirst	= 1
    } 	GcDrawLeaderOrderType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("9849E570-1C01-4380-B9FD-97965EC4C477") 
enum GcDrawMLeaderOrderType
    {
        acDrawContentFirst	= 0,
        gcDrawContentFirst	= 0,
        acDrawLeaderFirst	= 1,
        gcDrawLeaderFirst	= 1
    } 	GcDrawMLeaderOrderType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("8E4AC806-B5FE-47AF-BDDD-997718360D0E") 
enum GcSegmentAngleType
    {
        acDegreesAny	= 0,
        gcDegreesAny	= 0,
        acDegrees15	= 1,
        gcDegrees15	= 1,
        acDegrees30	= 2,
        gcDegrees30	= 2,
        acDegrees45	= 3,
        gcDegrees45	= 3,
        acDegrees60	= 4,
        gcDegrees60	= 4,
        acDegrees90	= 6,
        gcDegrees90	= 6,
        acDegreesHorz	= 12,
        gcDegreesHorz	= 12
    } 	GcSegmentAngleType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("896E0A1B-42DE-4892-92B2-A094A1BE484E") 
enum GcTextAttachmentDirection
    {
        acAttachmentHorizontal	= 0,
        gcAttachmentHorizontal	= 0,
        acAttachmentVertical	= 1,
        gcAttachmentVertical	= 1
    } 	GcTextAttachmentDirection;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("20ADE00B-22E9-48E6-80D6-3D2417A31C31") 
enum GcVerticalTextAttachmentType
    {
        acAttachmentCenter	= 0,
        gcAttachmentCenter	= 0,
        acAttachmentLinedCenter	= 1,
        gcAttachmentLinedCenter	= 1
    } 	GcVerticalTextAttachmentType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("82EC44D8-DF5D-4E1E-BFD5-0108289920D3") 
enum GcMeshCreaseType
    {
        acNoneCrease	= 0,
        gcNoneCrease	= 0,
        acAlwaysCrease	= 1,
        gcAlwaysCrease	= 1,
        acCreaseByLevel	= 2,
        gcCreaseByLevel	= 2
    } 	GcMeshCreaseType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("7FD3C073-9E2D-4788-8D74-AC542D8A2EA0") 
enum GcColorMethod
    {
        gcColorMethodByLayer	= 192,
        acColorMethodByLayer	= 192,
        gcColorMethodByBlock	= 193,
        acColorMethodByBlock	= 193,
        gcColorMethodByRGB	= 194,
        acColorMethodByRGB	= 194,
        gcColorMethodByACI	= 195,
        acColorMethodByACI	= 195,
        gcColorMethodForeground	= 197,
        acColorMethodForeground	= 197
    } 	GcColorMethod;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("BFC722CB-F92B-4958-9CA7-1DE5846CD2EF") 
enum GcSplineKnotParameterizationType
    {
        acChord	= 0,
        gcChord	= 0,
        acSqrtChord	= 1,
        gcSqrtChord	= 1,
        acUniformParam	= 2,
        gcUniformParam	= 2,
        acCustomParameterization	= 15,
        gcCustomParameterization	= 15
    } 	GcSplineKnotParameterizationType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("3C319878-D0D5-419A-8196-C9ECB6700F27") 
enum GcSplineFrameType
    {
        acShow	= 0,
        gcShow	= 0,
        acHide	= 1,
        gcHide	= 1
    } 	GcSplineFrameType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("4850C1D0-46E4-41B6-8D75-634F9E2449F8") 
enum GcSplineMethodType
    {
        acFit	= 0,
        gcFit	= 0,
        acControlVertices	= 1,
        gcControlVertices	= 1
    } 	GcSplineMethodType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("4D7DB704-66C7-4E21-AEC4-881EEB4B5BAE") 
enum GcWireframeType
    {
        acIsolines	= 0,
        gcIsolines	= 0,
        acIsoparms	= 1,
        gcIsoparms	= 1
    } 	GcWireframeType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("2E7CF0A7-37DB-48C6-BED3-261A50BFB32B") 
enum GcPointCloudColorType
    {
        acTrueColor	= 0,
        gcTrueColor	= 0,
        acByColor	= 1,
        gcByColor	= 1
    } 	GcPointCloudColorType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("27F615AD-2FF1-49CD-8631-CB7DFD678DF8") 
enum GcPointCloudStylizationType
    {
        acScanColor	= 0,
        gcScanColor	= 0,
        acObjectColor	= 1,
        gcObjectColor	= 1,
        acNormal	= 2,
        gcNormal	= 2,
        acIntensity	= 3,
        gcIntensity	= 3
    } 	GcPointCloudStylizationType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("D1CD425A-801D-47DA-99E3-262621B07745") 
enum GcPointCloudIntensityStyle
    {
        acIntensityGrayscale	= 0,
        gcIntensityGrayscale	= 0,
        acIntensityRainbow	= 1,
        gcIntensityRainbow	= 1,
        acIntensityRed	= 2,
        gcIntensityRed	= 2,
        acIntensityGreen	= 3,
        gcIntensityGreen	= 3,
        acIntensityBlue	= 4,
        gcIntensityBlue	= 4,
        acIntensityEditableFlag	= 5,
        gcIntensityEditableFlag	= 5
    } 	GcPointCloudIntensityStyle;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("A042CCD4-E8D9-4AE4-B7FA-A0AA2BFAD6F2") 
enum GcPointCloudExStylizationType
    {
        acRGB	= 0,
        gcRGB	= 0,
        acObject	= 1,
        gcObject	= 1,
        acNormals	= 2,
        gcNormals	= 2,
        acIntensities	= 3,
        gcIntensities	= 3,
        acElevation	= 4,
        gcElevation	= 4,
        acClassification	= 5,
        gcClassification	= 5
    } 	GcPointCloudExStylizationType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("296CC8D3-6126-4950-AC75-7EAB07523FAD") 
enum GcadSecurityParamsType
    {
        GCADSECURITYPARAMS_ENCRYPT_DATA	= 1,
        GCADSECURITYPARAMS_ENCRYPT_PROPS	= 2,
        GCADSECURITYPARAMS_SIGN_DATA	= 16,
        GCADSECURITYPARAMS_ADD_TIMESTAMP	= 32,
        ACADSECURITYPARAMS_ENCRYPT_DATA	= 1,
        ACADSECURITYPARAMS_ENCRYPT_PROPS	= 2,
        ACADSECURITYPARAMS_SIGN_DATA	= 16,
        ACADSECURITYPARAMS_ADD_TIMESTAMP	= 32
    } 	GcadSecurityParamsType;

typedef /* [v1_enum][uuid] */  DECLSPEC_UUID("61FA8767-660D-4EA1-97C2-0B7D71CD3B86") 
enum GcadSecurityParamsConstants
    {
        GCADSECURITYPARAMS_ALGID_RC4	= 26625,
        ACADSECURITYPARAMS_ALGID_RC4	= 26625
    } 	GcadSecurityParamsConstants;





EXTERN_C const IID LIBID_GXDBLib;

#ifndef __IGcadObject_INTERFACE_DEFINED__
#define __IGcadObject_INTERFACE_DEFINED__

/* interface IGcadObject */
/* [unique][oleautomation][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IGcadObject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B0F45D84-478D-4E42-8261-0F0C89BE7E99")
    IGcadObject : public IDispatch
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Handle( 
            /* [retval][out] */ BSTR *Handle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObjectName( 
            /* [retval][out] */ BSTR *ObjectName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetXData( 
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetXData( 
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Delete( void) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObjectID( 
            /* [retval][out] */ LONG_PTR *ObjectID) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ IDispatch **ApplicationObject) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_Database( 
            /* [retval][out] */ IGcadDatabase **pDatabase) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HasExtensionDictionary( 
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetExtensionDictionary( 
            /* [retval][out] */ IGcadDictionary **pExtDictionary) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_OwnerID( 
            /* [retval][out] */ LONG_PTR *OwnerID) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Document( 
            /* [retval][out] */ IDispatch **pDocument) = 0;
        
        virtual /* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE Erase( void) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadObjectVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadObject * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadObject * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadObject * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadObject * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadObject * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadObject * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadObject * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadObject * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadObject * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadObject * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadObject * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadObject * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadObject * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadObject * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadObject * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadObject * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadObject * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadObject * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadObject * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadObject * This);
        
        END_INTERFACE
    } IGcadObjectVtbl;

    interface IGcadObject
    {
        CONST_VTBL struct IGcadObjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadObject_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadObject_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadObject_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadObject_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadObject_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadObject_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadObject_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadObject_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadObject_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadObject_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadObject_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadObject_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadObject_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadObject_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadObject_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadObject_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadObject_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadObject_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadObject_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadObject_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadObject_INTERFACE_DEFINED__ */


#ifndef __IGcadDatabase_INTERFACE_DEFINED__
#define __IGcadDatabase_INTERFACE_DEFINED__

/* interface IGcadDatabase */
/* [unique][oleautomation][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IGcadDatabase;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A870B378-DB7F-4DA2-8E41-6E37B163A1C3")
    IGcadDatabase : public IDispatch
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ModelSpace( 
            /* [retval][out] */ IGcadModelSpace **pMSpace) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PaperSpace( 
            /* [retval][out] */ IGcadPaperSpace **pPSpace) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Blocks( 
            /* [retval][out] */ IGcadBlocks **pBlocks) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CopyObjects( 
            /* [in] */ VARIANT Objects,
            /* [optional][in] */ VARIANT Owner,
            /* [optional][out][in] */ VARIANT *IdPairs,
            /* [retval][out] */ VARIANT *pNewObjects) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Groups( 
            /* [retval][out] */ IGcadGroups **pGroups) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimStyles( 
            /* [retval][out] */ IGcadDimStyles **pDimStyles) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Layers( 
            /* [retval][out] */ IGcadLayers **pLayers) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Linetypes( 
            /* [retval][out] */ IGcadLineTypes **pLinetypes) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Dictionaries( 
            /* [retval][out] */ IGcadDictionaries **pDictionaries) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RegisteredApplications( 
            /* [retval][out] */ IGcadRegisteredApplications **pRegApps) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextStyles( 
            /* [retval][out] */ IGcadTextStyles **pTextStyles) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UserCoordinateSystems( 
            /* [retval][out] */ IGcadUCSs **pUCSs) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Views( 
            /* [retval][out] */ IGcadViews **pViews) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Viewports( 
            /* [retval][out] */ IGcadViewports **pViewports) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ElevationModelSpace( 
            /* [retval][out] */ double *Elevation) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ElevationModelSpace( 
            /* [in] */ double Elevation) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ElevationPaperSpace( 
            /* [retval][out] */ double *Elevation) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ElevationPaperSpace( 
            /* [in] */ double Elevation) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Limits( 
            /* [retval][out] */ VARIANT *Limits) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Limits( 
            /* [in] */ VARIANT Limits) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HandleToObject( 
            /* [in] */ BSTR Handle,
            /* [retval][out] */ IDispatch **pObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ObjectIdToObject( 
            /* [in] */ LONG_PTR ObjectID,
            /* [retval][out] */ IDispatch **pObj) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Layouts( 
            /* [retval][out] */ IGcadLayouts **pLayouts) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotConfigurations( 
            /* [retval][out] */ IGcadPlotConfigurations **pPlotConfigs) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Preferences( 
            /* [retval][out] */ IGcadDatabasePreferences **pPref) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SummaryInfo( 
            /* [retval][out] */ IGcadSummaryInfo **pSummaryInfo) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SectionManager( 
            /* [retval][out] */ IGcadSectionManager **pSecMgr) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Materials( 
            /* [retval][out] */ IGcadMaterials **pMaterials) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDatabaseVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDatabase * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDatabase * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDatabase * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDatabase * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDatabase * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDatabase * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDatabase * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_ModelSpace)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ModelSpace )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadModelSpace **pMSpace);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_PaperSpace)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PaperSpace )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadPaperSpace **pPSpace);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Blocks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Blocks )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadBlocks **pBlocks);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, CopyObjects)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CopyObjects )( 
            IGcadDatabase * This,
            /* [in] */ VARIANT Objects,
            /* [optional][in] */ VARIANT Owner,
            /* [optional][out][in] */ VARIANT *IdPairs,
            /* [retval][out] */ VARIANT *pNewObjects);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Groups)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Groups )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadGroups **pGroups);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_DimStyles)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimStyles )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadDimStyles **pDimStyles);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Layers)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layers )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadLayers **pLayers);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Linetypes)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetypes )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadLineTypes **pLinetypes);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Dictionaries)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Dictionaries )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadDictionaries **pDictionaries);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_RegisteredApplications)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RegisteredApplications )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadRegisteredApplications **pRegApps);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_TextStyles)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyles )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadTextStyles **pTextStyles);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_UserCoordinateSystems)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserCoordinateSystems )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadUCSs **pUCSs);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Views)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Views )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadViews **pViews);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Viewports)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Viewports )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadViewports **pViewports);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_ElevationModelSpace)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ElevationModelSpace )( 
            IGcadDatabase * This,
            /* [retval][out] */ double *Elevation);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, put_ElevationModelSpace)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ElevationModelSpace )( 
            IGcadDatabase * This,
            /* [in] */ double Elevation);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_ElevationPaperSpace)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ElevationPaperSpace )( 
            IGcadDatabase * This,
            /* [retval][out] */ double *Elevation);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, put_ElevationPaperSpace)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ElevationPaperSpace )( 
            IGcadDatabase * This,
            /* [in] */ double Elevation);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Limits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Limits )( 
            IGcadDatabase * This,
            /* [retval][out] */ VARIANT *Limits);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, put_Limits)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Limits )( 
            IGcadDatabase * This,
            /* [in] */ VARIANT Limits);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, HandleToObject)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HandleToObject )( 
            IGcadDatabase * This,
            /* [in] */ BSTR Handle,
            /* [retval][out] */ IDispatch **pObj);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, ObjectIdToObject)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ObjectIdToObject )( 
            IGcadDatabase * This,
            /* [in] */ LONG_PTR ObjectID,
            /* [retval][out] */ IDispatch **pObj);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Layouts)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layouts )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadLayouts **pLayouts);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_PlotConfigurations)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotConfigurations )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadPlotConfigurations **pPlotConfigs);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Preferences)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Preferences )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadDatabasePreferences **pPref);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_SummaryInfo)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SummaryInfo )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadSummaryInfo **pSummaryInfo);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_SectionManager)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SectionManager )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadSectionManager **pSecMgr);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Materials)
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Materials )( 
            IGcadDatabase * This,
            /* [retval][out] */ IGcadMaterials **pMaterials);
        
        END_INTERFACE
    } IGcadDatabaseVtbl;

    interface IGcadDatabase
    {
        CONST_VTBL struct IGcadDatabaseVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDatabase_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDatabase_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDatabase_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDatabase_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDatabase_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDatabase_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDatabase_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDatabase_get_ModelSpace(This,pMSpace)	\
    ( (This)->lpVtbl -> get_ModelSpace(This,pMSpace) ) 

#define IGcadDatabase_get_PaperSpace(This,pPSpace)	\
    ( (This)->lpVtbl -> get_PaperSpace(This,pPSpace) ) 

#define IGcadDatabase_get_Blocks(This,pBlocks)	\
    ( (This)->lpVtbl -> get_Blocks(This,pBlocks) ) 

#define IGcadDatabase_CopyObjects(This,Objects,Owner,IdPairs,pNewObjects)	\
    ( (This)->lpVtbl -> CopyObjects(This,Objects,Owner,IdPairs,pNewObjects) ) 

#define IGcadDatabase_get_Groups(This,pGroups)	\
    ( (This)->lpVtbl -> get_Groups(This,pGroups) ) 

#define IGcadDatabase_get_DimStyles(This,pDimStyles)	\
    ( (This)->lpVtbl -> get_DimStyles(This,pDimStyles) ) 

#define IGcadDatabase_get_Layers(This,pLayers)	\
    ( (This)->lpVtbl -> get_Layers(This,pLayers) ) 

#define IGcadDatabase_get_Linetypes(This,pLinetypes)	\
    ( (This)->lpVtbl -> get_Linetypes(This,pLinetypes) ) 

#define IGcadDatabase_get_Dictionaries(This,pDictionaries)	\
    ( (This)->lpVtbl -> get_Dictionaries(This,pDictionaries) ) 

#define IGcadDatabase_get_RegisteredApplications(This,pRegApps)	\
    ( (This)->lpVtbl -> get_RegisteredApplications(This,pRegApps) ) 

#define IGcadDatabase_get_TextStyles(This,pTextStyles)	\
    ( (This)->lpVtbl -> get_TextStyles(This,pTextStyles) ) 

#define IGcadDatabase_get_UserCoordinateSystems(This,pUCSs)	\
    ( (This)->lpVtbl -> get_UserCoordinateSystems(This,pUCSs) ) 

#define IGcadDatabase_get_Views(This,pViews)	\
    ( (This)->lpVtbl -> get_Views(This,pViews) ) 

#define IGcadDatabase_get_Viewports(This,pViewports)	\
    ( (This)->lpVtbl -> get_Viewports(This,pViewports) ) 

#define IGcadDatabase_get_ElevationModelSpace(This,Elevation)	\
    ( (This)->lpVtbl -> get_ElevationModelSpace(This,Elevation) ) 

#define IGcadDatabase_put_ElevationModelSpace(This,Elevation)	\
    ( (This)->lpVtbl -> put_ElevationModelSpace(This,Elevation) ) 

#define IGcadDatabase_get_ElevationPaperSpace(This,Elevation)	\
    ( (This)->lpVtbl -> get_ElevationPaperSpace(This,Elevation) ) 

#define IGcadDatabase_put_ElevationPaperSpace(This,Elevation)	\
    ( (This)->lpVtbl -> put_ElevationPaperSpace(This,Elevation) ) 

#define IGcadDatabase_get_Limits(This,Limits)	\
    ( (This)->lpVtbl -> get_Limits(This,Limits) ) 

#define IGcadDatabase_put_Limits(This,Limits)	\
    ( (This)->lpVtbl -> put_Limits(This,Limits) ) 

#define IGcadDatabase_HandleToObject(This,Handle,pObj)	\
    ( (This)->lpVtbl -> HandleToObject(This,Handle,pObj) ) 

#define IGcadDatabase_ObjectIdToObject(This,ObjectID,pObj)	\
    ( (This)->lpVtbl -> ObjectIdToObject(This,ObjectID,pObj) ) 

#define IGcadDatabase_get_Layouts(This,pLayouts)	\
    ( (This)->lpVtbl -> get_Layouts(This,pLayouts) ) 

#define IGcadDatabase_get_PlotConfigurations(This,pPlotConfigs)	\
    ( (This)->lpVtbl -> get_PlotConfigurations(This,pPlotConfigs) ) 

#define IGcadDatabase_get_Preferences(This,pPref)	\
    ( (This)->lpVtbl -> get_Preferences(This,pPref) ) 

#define IGcadDatabase_get_SummaryInfo(This,pSummaryInfo)	\
    ( (This)->lpVtbl -> get_SummaryInfo(This,pSummaryInfo) ) 

#define IGcadDatabase_get_SectionManager(This,pSecMgr)	\
    ( (This)->lpVtbl -> get_SectionManager(This,pSecMgr) ) 

#define IGcadDatabase_get_Materials(This,pMaterials)	\
    ( (This)->lpVtbl -> get_Materials(This,pMaterials) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadDatabase_INTERFACE_DEFINED__ */


#ifndef __IGcadBlock_INTERFACE_DEFINED__
#define __IGcadBlock_INTERFACE_DEFINED__

/* interface IGcadBlock */
/* [unique][oleautomation][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadBlock;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DA8148BC-3A06-4ACF-844D-36DF63CDAD78")
    IGcadBlock : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadEntity **pItem) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Origin( 
            /* [retval][out] */ VARIANT *Origin) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Origin( 
            /* [in] */ VARIANT Origin) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCustomObject( 
            /* [in] */ BSTR ClassName,
            /* [retval][out] */ IDispatch **pObject) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add3DFace( 
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [in] */ VARIANT Point4,
            /* [retval][out] */ IGcad3DFace **pFace3d) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add3DMesh( 
            /* [in] */ int M,
            /* [in] */ int N,
            /* [in] */ VARIANT PointsMatrix,
            /* [retval][out] */ IGcadPolygonMesh **pMesh3d) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add3DPoly( 
            /* [in] */ VARIANT PointsArray,
            /* [retval][out] */ IGcad3DPolyline **pPoly3d) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddArc( 
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [in] */ double StartAngle,
            /* [in] */ double EndAngle,
            /* [retval][out] */ IGcadArc **pArc) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddAttribute( 
            /* [in] */ double Height,
            /* [in] */ GcAttributeMode Mode,
            /* [in] */ BSTR Prompt,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Tag,
            /* [in] */ BSTR Value,
            /* [retval][out] */ IGcadAttribute **pAttr) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddBox( 
            /* [in] */ VARIANT Origin,
            /* [in] */ double Length,
            /* [in] */ double Width,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pBox) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCircle( 
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [retval][out] */ IGcadCircle **pCircle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCone( 
            /* [in] */ VARIANT Center,
            /* [in] */ double BaseRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pCone) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCylinder( 
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pCyl) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddDimAligned( 
            /* [in] */ VARIANT ExtLine1Point,
            /* [in] */ VARIANT ExtLine2Point,
            /* [in] */ VARIANT TextPosition,
            /* [retval][out] */ IGcadDimAligned **pDim) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddDimAngular( 
            /* [in] */ VARIANT AngleVertex,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT TextPoint,
            /* [retval][out] */ IGcadDimAngular **pDim) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddDimDiametric( 
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ VARIANT FarChordPoint,
            /* [in] */ double LeaderLength,
            /* [retval][out] */ IGcadDimDiametric **pDim) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddDimRotated( 
            /* [in] */ VARIANT ExtLine1Point,
            /* [in] */ VARIANT ExtLine2Point,
            /* [in] */ VARIANT DimLineLocation,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadDimRotated **pDim) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddDimOrdinate( 
            /* [in] */ VARIANT DefinitionPoint,
            /* [in] */ VARIANT LeaderEndPoint,
            /* [in] */ int UseXAxis,
            /* [retval][out] */ IGcadDimOrdinate **pDim) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddDimRadial( 
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ double LeaderLength,
            /* [retval][out] */ IGcadDimRadial **pDim) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddEllipse( 
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT MajorAxis,
            /* [in] */ double RadiusRatio,
            /* [retval][out] */ IGcadEllipse **pEllipse) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddEllipticalCone( 
            /* [in] */ VARIANT Center,
            /* [in] */ double MajorRadius,
            /* [in] */ double MinorRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pEllipCone) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddEllipticalCylinder( 
            /* [in] */ VARIANT Center,
            /* [in] */ double MajorRadius,
            /* [in] */ double MinorRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pEllipCyl) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddExtrudedSolid( 
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ double Height,
            /* [in] */ double TaperAngle,
            /* [retval][out] */ IGcad3DSolid **pExtrSolid) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddExtrudedSolidAlongPath( 
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ IDispatch *Path,
            /* [retval][out] */ IGcad3DSolid **pExtrSolid) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddLeader( 
            /* [in] */ VARIANT PointsArray,
            /* [in] */ IGcadEntity *Annotation,
            /* [in] */ GcLeaderType Type,
            /* [retval][out] */ IGcadLeader **pLeader) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddMText( 
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Width,
            /* [in] */ BSTR Text,
            /* [retval][out] */ IGcadMText **pMtext) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddPoint( 
            /* [in] */ VARIANT Point,
            /* [retval][out] */ IGcadPoint **pPoint) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddLightWeightPolyline( 
            /* [in] */ VARIANT VerticesList,
            /* [retval][out] */ IGcadLWPolyline **pLWPolyline) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddPolyline( 
            /* [in] */ VARIANT VerticesList,
            /* [retval][out] */ IGcadPolyline **pPolyline) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddRay( 
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IGcadRay **pRay) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddRegion( 
            /* [in] */ VARIANT ObjectList,
            /* [retval][out] */ VARIANT *pRegions) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddRevolvedSolid( 
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ VARIANT AxisPoint,
            /* [in] */ VARIANT AxisDir,
            /* [in] */ double Angle,
            /* [retval][out] */ IGcad3DSolid **pRevolSolid) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddShape( 
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double ScaleFactor,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadShape **pShape) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddSolid( 
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [in] */ VARIANT Point4,
            /* [retval][out] */ IGcadSolid **pSolid) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddSphere( 
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [retval][out] */ IGcad3DSolid **pSphere) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddSpline( 
            /* [in] */ VARIANT PointsArray,
            /* [in] */ VARIANT StartTangent,
            /* [in] */ VARIANT EndTangent,
            /* [retval][out] */ IGcadSpline **pSpline) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddText( 
            /* [in] */ BSTR TextString,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Height,
            /* [retval][out] */ IGcadText **pText) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddTolerance( 
            /* [in] */ BSTR Text,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ VARIANT Direction,
            /* [retval][out] */ IGcadTolerance **pTolerance) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddTorus( 
            /* [in] */ VARIANT Center,
            /* [in] */ double TorusRadius,
            /* [in] */ double TubeRadius,
            /* [retval][out] */ IGcad3DSolid **pTorus) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddTrace( 
            /* [in] */ VARIANT PointsArray,
            /* [retval][out] */ IGcadTrace **pTrace) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddWedge( 
            /* [in] */ VARIANT Center,
            /* [in] */ double Length,
            /* [in] */ double Width,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pWedge) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddXline( 
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IGcadXline **pXline) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InsertBlock( 
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Name,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadBlockReference **pBlkRef) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddHatch( 
            /* [in] */ int PatternType,
            /* [in] */ BSTR PatternName,
            /* [in] */ VARIANT_BOOL Associativity,
            /* [optional][in] */ VARIANT HatchObjectType,
            /* [retval][out] */ IGcadHatch **pHatch) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddRaster( 
            /* [in] */ BSTR imageFileName,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double ScaleFactor,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadRasterImage **pRaster) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddLine( 
            /* [in] */ VARIANT StartPoint,
            /* [in] */ VARIANT EndPoint,
            /* [retval][out] */ IGcadLine **pLine) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IsLayout( 
            /* [retval][out] */ VARIANT_BOOL *bIsLayout) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Layout( 
            /* [retval][out] */ IGcadLayout **pLayout) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IsXRef( 
            /* [retval][out] */ VARIANT_BOOL *pIsXRref) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddMInsertBlock( 
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Name,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [in] */ long NumRows,
            /* [in] */ long NumColumns,
            /* [in] */ long RowSpacing,
            /* [in] */ long ColumnSpacing,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadMInsertBlock **pMInsertBlk) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddPolyfaceMesh( 
            /* [in] */ VARIANT VertexList,
            /* [in] */ VARIANT FaceList,
            /* [retval][out] */ IGcadPolyfaceMesh **pPFMesh) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddMLine( 
            /* [in] */ VARIANT VertexList,
            /* [retval][out] */ IGcadMLine **pMLine) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddDim3PointAngular( 
            /* [in] */ VARIANT AngleVertex,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT TextPoint,
            /* [retval][out] */ IGcadDim3PointAngular **pDim) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_XRefDatabase( 
            /* [retval][out] */ IGcadDatabase **pDatabase) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AttachExternalReference( 
            /* [in] */ BSTR PathName,
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [in] */ VARIANT_BOOL bOverlay,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadExternalReference **pXRef) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Unload( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Reload( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Bind( 
            /* [in] */ VARIANT_BOOL bPrefixName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Detach( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddTable( 
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ int NumRows,
            /* [in] */ int NumColumns,
            /* [in] */ double RowHeight,
            /* [in] */ double ColWidth,
            /* [retval][out] */ IGcadTable **pTable) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Path( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Path( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Comments( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Comments( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Units( 
            /* [retval][out] */ GcInsertUnits *pIU) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Units( 
            /* [in] */ GcInsertUnits pIU) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Explodable( 
            /* [retval][out] */ VARIANT_BOOL *bExplodable) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Explodable( 
            /* [in] */ VARIANT_BOOL bExplodable) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BlockScaling( 
            /* [retval][out] */ GcBlockScaling *pBS) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BlockScaling( 
            /* [in] */ GcBlockScaling pBS) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IsDynamicBlock( 
            /* [retval][out] */ VARIANT_BOOL *pDynamicBlock) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddDimArc( 
            /* [in] */ VARIANT ArcCenter,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT ArcPoint,
            /* [retval][out] */ IGcadDimArcLength **pDim) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddDimRadialLarge( 
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ VARIANT OverrideCenter,
            /* [in] */ VARIANT JogPoint,
            /* [in] */ double JogAngle,
            /* [retval][out] */ IGcadDimRadialLarge **pDim) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddSection( 
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint,
            /* [in] */ VARIANT planeVector,
            /* [retval][out] */ IGcadSection **ppSecPlane) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddMLeader( 
            /* [in] */ VARIANT PointsArray,
            /* [out] */ int *leaderLineIndex,
            /* [retval][out] */ IGcadMLeader **pMLeader) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadBlockVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadBlock * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadBlock * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadBlock * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadBlock * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadBlock * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadBlock * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadBlock * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadBlock * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadBlock * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadBlock * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadBlock * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadBlock * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadBlock * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadBlock * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadBlock * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadBlock * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadBlock * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadBlock * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadBlock * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadBlock * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadEntity **pItem);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadBlock * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadBlock * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadBlock * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadBlock * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Origin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Origin )( 
            IGcadBlock * This,
            /* [retval][out] */ VARIANT *Origin);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Origin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Origin )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Origin);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCustomObject)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCustomObject )( 
            IGcadBlock * This,
            /* [in] */ BSTR ClassName,
            /* [retval][out] */ IDispatch **pObject);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Add3DFace)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add3DFace )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [in] */ VARIANT Point4,
            /* [retval][out] */ IGcad3DFace **pFace3d);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Add3DMesh)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add3DMesh )( 
            IGcadBlock * This,
            /* [in] */ int M,
            /* [in] */ int N,
            /* [in] */ VARIANT PointsMatrix,
            /* [retval][out] */ IGcadPolygonMesh **pMesh3d);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Add3DPoly)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add3DPoly )( 
            IGcadBlock * This,
            /* [in] */ VARIANT PointsArray,
            /* [retval][out] */ IGcad3DPolyline **pPoly3d);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddArc)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddArc )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [in] */ double StartAngle,
            /* [in] */ double EndAngle,
            /* [retval][out] */ IGcadArc **pArc);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddAttribute)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddAttribute )( 
            IGcadBlock * This,
            /* [in] */ double Height,
            /* [in] */ GcAttributeMode Mode,
            /* [in] */ BSTR Prompt,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Tag,
            /* [in] */ BSTR Value,
            /* [retval][out] */ IGcadAttribute **pAttr);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddBox )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Origin,
            /* [in] */ double Length,
            /* [in] */ double Width,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pBox);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCircle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCircle )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [retval][out] */ IGcadCircle **pCircle);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCone )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double BaseRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pCone);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCylinder)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCylinder )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pCyl);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimAligned)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimAligned )( 
            IGcadBlock * This,
            /* [in] */ VARIANT ExtLine1Point,
            /* [in] */ VARIANT ExtLine2Point,
            /* [in] */ VARIANT TextPosition,
            /* [retval][out] */ IGcadDimAligned **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimAngular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimAngular )( 
            IGcadBlock * This,
            /* [in] */ VARIANT AngleVertex,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT TextPoint,
            /* [retval][out] */ IGcadDimAngular **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimDiametric)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimDiametric )( 
            IGcadBlock * This,
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ VARIANT FarChordPoint,
            /* [in] */ double LeaderLength,
            /* [retval][out] */ IGcadDimDiametric **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimRotated)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimRotated )( 
            IGcadBlock * This,
            /* [in] */ VARIANT ExtLine1Point,
            /* [in] */ VARIANT ExtLine2Point,
            /* [in] */ VARIANT DimLineLocation,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadDimRotated **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimOrdinate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimOrdinate )( 
            IGcadBlock * This,
            /* [in] */ VARIANT DefinitionPoint,
            /* [in] */ VARIANT LeaderEndPoint,
            /* [in] */ int UseXAxis,
            /* [retval][out] */ IGcadDimOrdinate **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimRadial)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimRadial )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ double LeaderLength,
            /* [retval][out] */ IGcadDimRadial **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddEllipse)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEllipse )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT MajorAxis,
            /* [in] */ double RadiusRatio,
            /* [retval][out] */ IGcadEllipse **pEllipse);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddEllipticalCone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEllipticalCone )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double MajorRadius,
            /* [in] */ double MinorRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pEllipCone);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddEllipticalCylinder)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEllipticalCylinder )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double MajorRadius,
            /* [in] */ double MinorRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pEllipCyl);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddExtrudedSolid)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddExtrudedSolid )( 
            IGcadBlock * This,
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ double Height,
            /* [in] */ double TaperAngle,
            /* [retval][out] */ IGcad3DSolid **pExtrSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddExtrudedSolidAlongPath)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddExtrudedSolidAlongPath )( 
            IGcadBlock * This,
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ IDispatch *Path,
            /* [retval][out] */ IGcad3DSolid **pExtrSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddLeader)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLeader )( 
            IGcadBlock * This,
            /* [in] */ VARIANT PointsArray,
            /* [in] */ IGcadEntity *Annotation,
            /* [in] */ GcLeaderType Type,
            /* [retval][out] */ IGcadLeader **pLeader);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMText)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMText )( 
            IGcadBlock * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Width,
            /* [in] */ BSTR Text,
            /* [retval][out] */ IGcadMText **pMtext);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddPoint)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPoint )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Point,
            /* [retval][out] */ IGcadPoint **pPoint);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddLightWeightPolyline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLightWeightPolyline )( 
            IGcadBlock * This,
            /* [in] */ VARIANT VerticesList,
            /* [retval][out] */ IGcadLWPolyline **pLWPolyline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddPolyline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPolyline )( 
            IGcadBlock * This,
            /* [in] */ VARIANT VerticesList,
            /* [retval][out] */ IGcadPolyline **pPolyline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRay)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRay )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IGcadRay **pRay);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRegion)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRegion )( 
            IGcadBlock * This,
            /* [in] */ VARIANT ObjectList,
            /* [retval][out] */ VARIANT *pRegions);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRevolvedSolid)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRevolvedSolid )( 
            IGcadBlock * This,
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ VARIANT AxisPoint,
            /* [in] */ VARIANT AxisDir,
            /* [in] */ double Angle,
            /* [retval][out] */ IGcad3DSolid **pRevolSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddShape)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddShape )( 
            IGcadBlock * This,
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double ScaleFactor,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadShape **pShape);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSolid)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSolid )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [in] */ VARIANT Point4,
            /* [retval][out] */ IGcadSolid **pSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSphere)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSphere )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [retval][out] */ IGcad3DSolid **pSphere);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSpline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSpline )( 
            IGcadBlock * This,
            /* [in] */ VARIANT PointsArray,
            /* [in] */ VARIANT StartTangent,
            /* [in] */ VARIANT EndTangent,
            /* [retval][out] */ IGcadSpline **pSpline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddText)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddText )( 
            IGcadBlock * This,
            /* [in] */ BSTR TextString,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Height,
            /* [retval][out] */ IGcadText **pText);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTolerance)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTolerance )( 
            IGcadBlock * This,
            /* [in] */ BSTR Text,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ VARIANT Direction,
            /* [retval][out] */ IGcadTolerance **pTolerance);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTorus)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTorus )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double TorusRadius,
            /* [in] */ double TubeRadius,
            /* [retval][out] */ IGcad3DSolid **pTorus);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTrace)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTrace )( 
            IGcadBlock * This,
            /* [in] */ VARIANT PointsArray,
            /* [retval][out] */ IGcadTrace **pTrace);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddWedge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddWedge )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Length,
            /* [in] */ double Width,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pWedge);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddXline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddXline )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IGcadXline **pXline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, InsertBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertBlock )( 
            IGcadBlock * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Name,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadBlockReference **pBlkRef);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddHatch)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddHatch )( 
            IGcadBlock * This,
            /* [in] */ int PatternType,
            /* [in] */ BSTR PatternName,
            /* [in] */ VARIANT_BOOL Associativity,
            /* [optional][in] */ VARIANT HatchObjectType,
            /* [retval][out] */ IGcadHatch **pHatch);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRaster)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRaster )( 
            IGcadBlock * This,
            /* [in] */ BSTR imageFileName,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double ScaleFactor,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadRasterImage **pRaster);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddLine)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLine )( 
            IGcadBlock * This,
            /* [in] */ VARIANT StartPoint,
            /* [in] */ VARIANT EndPoint,
            /* [retval][out] */ IGcadLine **pLine);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_IsLayout)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsLayout )( 
            IGcadBlock * This,
            /* [retval][out] */ VARIANT_BOOL *bIsLayout);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Layout)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layout )( 
            IGcadBlock * This,
            /* [retval][out] */ IGcadLayout **pLayout);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_IsXRef)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsXRef )( 
            IGcadBlock * This,
            /* [retval][out] */ VARIANT_BOOL *pIsXRref);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMInsertBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMInsertBlock )( 
            IGcadBlock * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Name,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [in] */ long NumRows,
            /* [in] */ long NumColumns,
            /* [in] */ long RowSpacing,
            /* [in] */ long ColumnSpacing,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadMInsertBlock **pMInsertBlk);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddPolyfaceMesh)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPolyfaceMesh )( 
            IGcadBlock * This,
            /* [in] */ VARIANT VertexList,
            /* [in] */ VARIANT FaceList,
            /* [retval][out] */ IGcadPolyfaceMesh **pPFMesh);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMLine)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMLine )( 
            IGcadBlock * This,
            /* [in] */ VARIANT VertexList,
            /* [retval][out] */ IGcadMLine **pMLine);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDim3PointAngular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDim3PointAngular )( 
            IGcadBlock * This,
            /* [in] */ VARIANT AngleVertex,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT TextPoint,
            /* [retval][out] */ IGcadDim3PointAngular **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_XRefDatabase)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XRefDatabase )( 
            IGcadBlock * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AttachExternalReference)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttachExternalReference )( 
            IGcadBlock * This,
            /* [in] */ BSTR PathName,
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [in] */ VARIANT_BOOL bOverlay,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadExternalReference **pXRef);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Unload)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Unload )( 
            IGcadBlock * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Reload)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Reload )( 
            IGcadBlock * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Bind)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Bind )( 
            IGcadBlock * This,
            /* [in] */ VARIANT_BOOL bPrefixName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Detach)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Detach )( 
            IGcadBlock * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTable)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTable )( 
            IGcadBlock * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ int NumRows,
            /* [in] */ int NumColumns,
            /* [in] */ double RowHeight,
            /* [in] */ double ColWidth,
            /* [retval][out] */ IGcadTable **pTable);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Path)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            IGcadBlock * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Path)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Path )( 
            IGcadBlock * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Comments)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Comments )( 
            IGcadBlock * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Comments)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Comments )( 
            IGcadBlock * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Units)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Units )( 
            IGcadBlock * This,
            /* [retval][out] */ GcInsertUnits *pIU);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Units)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Units )( 
            IGcadBlock * This,
            /* [in] */ GcInsertUnits pIU);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Explodable)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Explodable )( 
            IGcadBlock * This,
            /* [retval][out] */ VARIANT_BOOL *bExplodable);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Explodable)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Explodable )( 
            IGcadBlock * This,
            /* [in] */ VARIANT_BOOL bExplodable);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_BlockScaling)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BlockScaling )( 
            IGcadBlock * This,
            /* [retval][out] */ GcBlockScaling *pBS);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_BlockScaling)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BlockScaling )( 
            IGcadBlock * This,
            /* [in] */ GcBlockScaling pBS);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_IsDynamicBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsDynamicBlock )( 
            IGcadBlock * This,
            /* [retval][out] */ VARIANT_BOOL *pDynamicBlock);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimArc)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimArc )( 
            IGcadBlock * This,
            /* [in] */ VARIANT ArcCenter,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT ArcPoint,
            /* [retval][out] */ IGcadDimArcLength **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimRadialLarge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimRadialLarge )( 
            IGcadBlock * This,
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ VARIANT OverrideCenter,
            /* [in] */ VARIANT JogPoint,
            /* [in] */ double JogAngle,
            /* [retval][out] */ IGcadDimRadialLarge **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSection)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSection )( 
            IGcadBlock * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint,
            /* [in] */ VARIANT planeVector,
            /* [retval][out] */ IGcadSection **ppSecPlane);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMLeader)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMLeader )( 
            IGcadBlock * This,
            /* [in] */ VARIANT PointsArray,
            /* [out] */ int *leaderLineIndex,
            /* [retval][out] */ IGcadMLeader **pMLeader);
        
        END_INTERFACE
    } IGcadBlockVtbl;

    interface IGcadBlock
    {
        CONST_VTBL struct IGcadBlockVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadBlock_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadBlock_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadBlock_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadBlock_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadBlock_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadBlock_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadBlock_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadBlock_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadBlock_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadBlock_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadBlock_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadBlock_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadBlock_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadBlock_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadBlock_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadBlock_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadBlock_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadBlock_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadBlock_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadBlock_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadBlock_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadBlock_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadBlock_get_Count(This,pVal)	\
    ( (This)->lpVtbl -> get_Count(This,pVal) ) 

#define IGcadBlock_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadBlock_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadBlock_get_Origin(This,Origin)	\
    ( (This)->lpVtbl -> get_Origin(This,Origin) ) 

#define IGcadBlock_put_Origin(This,Origin)	\
    ( (This)->lpVtbl -> put_Origin(This,Origin) ) 

#define IGcadBlock_AddCustomObject(This,ClassName,pObject)	\
    ( (This)->lpVtbl -> AddCustomObject(This,ClassName,pObject) ) 

#define IGcadBlock_Add3DFace(This,Point1,Point2,point3,Point4,pFace3d)	\
    ( (This)->lpVtbl -> Add3DFace(This,Point1,Point2,point3,Point4,pFace3d) ) 

#define IGcadBlock_Add3DMesh(This,M,N,PointsMatrix,pMesh3d)	\
    ( (This)->lpVtbl -> Add3DMesh(This,M,N,PointsMatrix,pMesh3d) ) 

#define IGcadBlock_Add3DPoly(This,PointsArray,pPoly3d)	\
    ( (This)->lpVtbl -> Add3DPoly(This,PointsArray,pPoly3d) ) 

#define IGcadBlock_AddArc(This,Center,Radius,StartAngle,EndAngle,pArc)	\
    ( (This)->lpVtbl -> AddArc(This,Center,Radius,StartAngle,EndAngle,pArc) ) 

#define IGcadBlock_AddAttribute(This,Height,Mode,Prompt,InsertionPoint,Tag,Value,pAttr)	\
    ( (This)->lpVtbl -> AddAttribute(This,Height,Mode,Prompt,InsertionPoint,Tag,Value,pAttr) ) 

#define IGcadBlock_AddBox(This,Origin,Length,Width,Height,pBox)	\
    ( (This)->lpVtbl -> AddBox(This,Origin,Length,Width,Height,pBox) ) 

#define IGcadBlock_AddCircle(This,Center,Radius,pCircle)	\
    ( (This)->lpVtbl -> AddCircle(This,Center,Radius,pCircle) ) 

#define IGcadBlock_AddCone(This,Center,BaseRadius,Height,pCone)	\
    ( (This)->lpVtbl -> AddCone(This,Center,BaseRadius,Height,pCone) ) 

#define IGcadBlock_AddCylinder(This,Center,Radius,Height,pCyl)	\
    ( (This)->lpVtbl -> AddCylinder(This,Center,Radius,Height,pCyl) ) 

#define IGcadBlock_AddDimAligned(This,ExtLine1Point,ExtLine2Point,TextPosition,pDim)	\
    ( (This)->lpVtbl -> AddDimAligned(This,ExtLine1Point,ExtLine2Point,TextPosition,pDim) ) 

#define IGcadBlock_AddDimAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim)	\
    ( (This)->lpVtbl -> AddDimAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim) ) 

#define IGcadBlock_AddDimDiametric(This,ChordPoint,FarChordPoint,LeaderLength,pDim)	\
    ( (This)->lpVtbl -> AddDimDiametric(This,ChordPoint,FarChordPoint,LeaderLength,pDim) ) 

#define IGcadBlock_AddDimRotated(This,ExtLine1Point,ExtLine2Point,DimLineLocation,RotationAngle,pDim)	\
    ( (This)->lpVtbl -> AddDimRotated(This,ExtLine1Point,ExtLine2Point,DimLineLocation,RotationAngle,pDim) ) 

#define IGcadBlock_AddDimOrdinate(This,DefinitionPoint,LeaderEndPoint,UseXAxis,pDim)	\
    ( (This)->lpVtbl -> AddDimOrdinate(This,DefinitionPoint,LeaderEndPoint,UseXAxis,pDim) ) 

#define IGcadBlock_AddDimRadial(This,Center,ChordPoint,LeaderLength,pDim)	\
    ( (This)->lpVtbl -> AddDimRadial(This,Center,ChordPoint,LeaderLength,pDim) ) 

#define IGcadBlock_AddEllipse(This,Center,MajorAxis,RadiusRatio,pEllipse)	\
    ( (This)->lpVtbl -> AddEllipse(This,Center,MajorAxis,RadiusRatio,pEllipse) ) 

#define IGcadBlock_AddEllipticalCone(This,Center,MajorRadius,MinorRadius,Height,pEllipCone)	\
    ( (This)->lpVtbl -> AddEllipticalCone(This,Center,MajorRadius,MinorRadius,Height,pEllipCone) ) 

#define IGcadBlock_AddEllipticalCylinder(This,Center,MajorRadius,MinorRadius,Height,pEllipCyl)	\
    ( (This)->lpVtbl -> AddEllipticalCylinder(This,Center,MajorRadius,MinorRadius,Height,pEllipCyl) ) 

#define IGcadBlock_AddExtrudedSolid(This,Profile,Height,TaperAngle,pExtrSolid)	\
    ( (This)->lpVtbl -> AddExtrudedSolid(This,Profile,Height,TaperAngle,pExtrSolid) ) 

#define IGcadBlock_AddExtrudedSolidAlongPath(This,Profile,Path,pExtrSolid)	\
    ( (This)->lpVtbl -> AddExtrudedSolidAlongPath(This,Profile,Path,pExtrSolid) ) 

#define IGcadBlock_AddLeader(This,PointsArray,Annotation,Type,pLeader)	\
    ( (This)->lpVtbl -> AddLeader(This,PointsArray,Annotation,Type,pLeader) ) 

#define IGcadBlock_AddMText(This,InsertionPoint,Width,Text,pMtext)	\
    ( (This)->lpVtbl -> AddMText(This,InsertionPoint,Width,Text,pMtext) ) 

#define IGcadBlock_AddPoint(This,Point,pPoint)	\
    ( (This)->lpVtbl -> AddPoint(This,Point,pPoint) ) 

#define IGcadBlock_AddLightWeightPolyline(This,VerticesList,pLWPolyline)	\
    ( (This)->lpVtbl -> AddLightWeightPolyline(This,VerticesList,pLWPolyline) ) 

#define IGcadBlock_AddPolyline(This,VerticesList,pPolyline)	\
    ( (This)->lpVtbl -> AddPolyline(This,VerticesList,pPolyline) ) 

#define IGcadBlock_AddRay(This,Point1,Point2,pRay)	\
    ( (This)->lpVtbl -> AddRay(This,Point1,Point2,pRay) ) 

#define IGcadBlock_AddRegion(This,ObjectList,pRegions)	\
    ( (This)->lpVtbl -> AddRegion(This,ObjectList,pRegions) ) 

#define IGcadBlock_AddRevolvedSolid(This,Profile,AxisPoint,AxisDir,Angle,pRevolSolid)	\
    ( (This)->lpVtbl -> AddRevolvedSolid(This,Profile,AxisPoint,AxisDir,Angle,pRevolSolid) ) 

#define IGcadBlock_AddShape(This,Name,InsertionPoint,ScaleFactor,RotationAngle,pShape)	\
    ( (This)->lpVtbl -> AddShape(This,Name,InsertionPoint,ScaleFactor,RotationAngle,pShape) ) 

#define IGcadBlock_AddSolid(This,Point1,Point2,point3,Point4,pSolid)	\
    ( (This)->lpVtbl -> AddSolid(This,Point1,Point2,point3,Point4,pSolid) ) 

#define IGcadBlock_AddSphere(This,Center,Radius,pSphere)	\
    ( (This)->lpVtbl -> AddSphere(This,Center,Radius,pSphere) ) 

#define IGcadBlock_AddSpline(This,PointsArray,StartTangent,EndTangent,pSpline)	\
    ( (This)->lpVtbl -> AddSpline(This,PointsArray,StartTangent,EndTangent,pSpline) ) 

#define IGcadBlock_AddText(This,TextString,InsertionPoint,Height,pText)	\
    ( (This)->lpVtbl -> AddText(This,TextString,InsertionPoint,Height,pText) ) 

#define IGcadBlock_AddTolerance(This,Text,InsertionPoint,Direction,pTolerance)	\
    ( (This)->lpVtbl -> AddTolerance(This,Text,InsertionPoint,Direction,pTolerance) ) 

#define IGcadBlock_AddTorus(This,Center,TorusRadius,TubeRadius,pTorus)	\
    ( (This)->lpVtbl -> AddTorus(This,Center,TorusRadius,TubeRadius,pTorus) ) 

#define IGcadBlock_AddTrace(This,PointsArray,pTrace)	\
    ( (This)->lpVtbl -> AddTrace(This,PointsArray,pTrace) ) 

#define IGcadBlock_AddWedge(This,Center,Length,Width,Height,pWedge)	\
    ( (This)->lpVtbl -> AddWedge(This,Center,Length,Width,Height,pWedge) ) 

#define IGcadBlock_AddXline(This,Point1,Point2,pXline)	\
    ( (This)->lpVtbl -> AddXline(This,Point1,Point2,pXline) ) 

#define IGcadBlock_InsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,Password,pBlkRef)	\
    ( (This)->lpVtbl -> InsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,Password,pBlkRef) ) 

#define IGcadBlock_AddHatch(This,PatternType,PatternName,Associativity,HatchObjectType,pHatch)	\
    ( (This)->lpVtbl -> AddHatch(This,PatternType,PatternName,Associativity,HatchObjectType,pHatch) ) 

#define IGcadBlock_AddRaster(This,imageFileName,InsertionPoint,ScaleFactor,RotationAngle,pRaster)	\
    ( (This)->lpVtbl -> AddRaster(This,imageFileName,InsertionPoint,ScaleFactor,RotationAngle,pRaster) ) 

#define IGcadBlock_AddLine(This,StartPoint,EndPoint,pLine)	\
    ( (This)->lpVtbl -> AddLine(This,StartPoint,EndPoint,pLine) ) 

#define IGcadBlock_get_IsLayout(This,bIsLayout)	\
    ( (This)->lpVtbl -> get_IsLayout(This,bIsLayout) ) 

#define IGcadBlock_get_Layout(This,pLayout)	\
    ( (This)->lpVtbl -> get_Layout(This,pLayout) ) 

#define IGcadBlock_get_IsXRef(This,pIsXRref)	\
    ( (This)->lpVtbl -> get_IsXRef(This,pIsXRref) ) 

#define IGcadBlock_AddMInsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,NumRows,NumColumns,RowSpacing,ColumnSpacing,Password,pMInsertBlk)	\
    ( (This)->lpVtbl -> AddMInsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,NumRows,NumColumns,RowSpacing,ColumnSpacing,Password,pMInsertBlk) ) 

#define IGcadBlock_AddPolyfaceMesh(This,VertexList,FaceList,pPFMesh)	\
    ( (This)->lpVtbl -> AddPolyfaceMesh(This,VertexList,FaceList,pPFMesh) ) 

#define IGcadBlock_AddMLine(This,VertexList,pMLine)	\
    ( (This)->lpVtbl -> AddMLine(This,VertexList,pMLine) ) 

#define IGcadBlock_AddDim3PointAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim)	\
    ( (This)->lpVtbl -> AddDim3PointAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim) ) 

#define IGcadBlock_get_XRefDatabase(This,pDatabase)	\
    ( (This)->lpVtbl -> get_XRefDatabase(This,pDatabase) ) 

#define IGcadBlock_AttachExternalReference(This,PathName,Name,InsertionPoint,Xscale,Yscale,Zscale,Rotation,bOverlay,Password,pXRef)	\
    ( (This)->lpVtbl -> AttachExternalReference(This,PathName,Name,InsertionPoint,Xscale,Yscale,Zscale,Rotation,bOverlay,Password,pXRef) ) 

#define IGcadBlock_Unload(This)	\
    ( (This)->lpVtbl -> Unload(This) ) 

#define IGcadBlock_Reload(This)	\
    ( (This)->lpVtbl -> Reload(This) ) 

#define IGcadBlock_Bind(This,bPrefixName)	\
    ( (This)->lpVtbl -> Bind(This,bPrefixName) ) 

#define IGcadBlock_Detach(This)	\
    ( (This)->lpVtbl -> Detach(This) ) 

#define IGcadBlock_AddTable(This,InsertionPoint,NumRows,NumColumns,RowHeight,ColWidth,pTable)	\
    ( (This)->lpVtbl -> AddTable(This,InsertionPoint,NumRows,NumColumns,RowHeight,ColWidth,pTable) ) 

#define IGcadBlock_get_Path(This,bstrName)	\
    ( (This)->lpVtbl -> get_Path(This,bstrName) ) 

#define IGcadBlock_put_Path(This,bstrName)	\
    ( (This)->lpVtbl -> put_Path(This,bstrName) ) 

#define IGcadBlock_get_Comments(This,bstrName)	\
    ( (This)->lpVtbl -> get_Comments(This,bstrName) ) 

#define IGcadBlock_put_Comments(This,bstrName)	\
    ( (This)->lpVtbl -> put_Comments(This,bstrName) ) 

#define IGcadBlock_get_Units(This,pIU)	\
    ( (This)->lpVtbl -> get_Units(This,pIU) ) 

#define IGcadBlock_put_Units(This,pIU)	\
    ( (This)->lpVtbl -> put_Units(This,pIU) ) 

#define IGcadBlock_get_Explodable(This,bExplodable)	\
    ( (This)->lpVtbl -> get_Explodable(This,bExplodable) ) 

#define IGcadBlock_put_Explodable(This,bExplodable)	\
    ( (This)->lpVtbl -> put_Explodable(This,bExplodable) ) 

#define IGcadBlock_get_BlockScaling(This,pBS)	\
    ( (This)->lpVtbl -> get_BlockScaling(This,pBS) ) 

#define IGcadBlock_put_BlockScaling(This,pBS)	\
    ( (This)->lpVtbl -> put_BlockScaling(This,pBS) ) 

#define IGcadBlock_get_IsDynamicBlock(This,pDynamicBlock)	\
    ( (This)->lpVtbl -> get_IsDynamicBlock(This,pDynamicBlock) ) 

#define IGcadBlock_AddDimArc(This,ArcCenter,FirstEndPoint,SecondEndPoint,ArcPoint,pDim)	\
    ( (This)->lpVtbl -> AddDimArc(This,ArcCenter,FirstEndPoint,SecondEndPoint,ArcPoint,pDim) ) 

#define IGcadBlock_AddDimRadialLarge(This,Center,ChordPoint,OverrideCenter,JogPoint,JogAngle,pDim)	\
    ( (This)->lpVtbl -> AddDimRadialLarge(This,Center,ChordPoint,OverrideCenter,JogPoint,JogAngle,pDim) ) 

#define IGcadBlock_AddSection(This,FromPoint,ToPoint,planeVector,ppSecPlane)	\
    ( (This)->lpVtbl -> AddSection(This,FromPoint,ToPoint,planeVector,ppSecPlane) ) 

#define IGcadBlock_AddMLeader(This,PointsArray,leaderLineIndex,pMLeader)	\
    ( (This)->lpVtbl -> AddMLeader(This,PointsArray,leaderLineIndex,pMLeader) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadBlock_INTERFACE_DEFINED__ */


#ifndef __IGcadModelSpace_INTERFACE_DEFINED__
#define __IGcadModelSpace_INTERFACE_DEFINED__

/* interface IGcadModelSpace */
/* [unique][oleautomation][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IGcadModelSpace;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2F4EF1D8-60BB-4737-8BD6-5B57A90E4C84")
    IGcadModelSpace : public IGcadBlock
    {
    public:
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadModelSpaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadModelSpace * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadModelSpace * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadModelSpace * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadModelSpace * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadModelSpace * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadModelSpace * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadModelSpace * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadModelSpace * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadModelSpace * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadModelSpace * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadModelSpace * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadModelSpace * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadModelSpace * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadModelSpace * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadModelSpace * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadModelSpace * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadModelSpace * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadModelSpace * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadModelSpace * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadEntity **pItem);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadModelSpace * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadModelSpace * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadModelSpace * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadModelSpace * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Origin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Origin )( 
            IGcadModelSpace * This,
            /* [retval][out] */ VARIANT *Origin);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Origin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Origin )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Origin);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCustomObject)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCustomObject )( 
            IGcadModelSpace * This,
            /* [in] */ BSTR ClassName,
            /* [retval][out] */ IDispatch **pObject);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Add3DFace)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add3DFace )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [in] */ VARIANT Point4,
            /* [retval][out] */ IGcad3DFace **pFace3d);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Add3DMesh)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add3DMesh )( 
            IGcadModelSpace * This,
            /* [in] */ int M,
            /* [in] */ int N,
            /* [in] */ VARIANT PointsMatrix,
            /* [retval][out] */ IGcadPolygonMesh **pMesh3d);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Add3DPoly)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add3DPoly )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT PointsArray,
            /* [retval][out] */ IGcad3DPolyline **pPoly3d);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddArc)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddArc )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [in] */ double StartAngle,
            /* [in] */ double EndAngle,
            /* [retval][out] */ IGcadArc **pArc);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddAttribute)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddAttribute )( 
            IGcadModelSpace * This,
            /* [in] */ double Height,
            /* [in] */ GcAttributeMode Mode,
            /* [in] */ BSTR Prompt,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Tag,
            /* [in] */ BSTR Value,
            /* [retval][out] */ IGcadAttribute **pAttr);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddBox )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Origin,
            /* [in] */ double Length,
            /* [in] */ double Width,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pBox);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCircle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCircle )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [retval][out] */ IGcadCircle **pCircle);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCone )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double BaseRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pCone);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCylinder)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCylinder )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pCyl);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimAligned)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimAligned )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT ExtLine1Point,
            /* [in] */ VARIANT ExtLine2Point,
            /* [in] */ VARIANT TextPosition,
            /* [retval][out] */ IGcadDimAligned **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimAngular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimAngular )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT AngleVertex,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT TextPoint,
            /* [retval][out] */ IGcadDimAngular **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimDiametric)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimDiametric )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ VARIANT FarChordPoint,
            /* [in] */ double LeaderLength,
            /* [retval][out] */ IGcadDimDiametric **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimRotated)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimRotated )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT ExtLine1Point,
            /* [in] */ VARIANT ExtLine2Point,
            /* [in] */ VARIANT DimLineLocation,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadDimRotated **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimOrdinate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimOrdinate )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT DefinitionPoint,
            /* [in] */ VARIANT LeaderEndPoint,
            /* [in] */ int UseXAxis,
            /* [retval][out] */ IGcadDimOrdinate **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimRadial)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimRadial )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ double LeaderLength,
            /* [retval][out] */ IGcadDimRadial **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddEllipse)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEllipse )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT MajorAxis,
            /* [in] */ double RadiusRatio,
            /* [retval][out] */ IGcadEllipse **pEllipse);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddEllipticalCone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEllipticalCone )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double MajorRadius,
            /* [in] */ double MinorRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pEllipCone);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddEllipticalCylinder)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEllipticalCylinder )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double MajorRadius,
            /* [in] */ double MinorRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pEllipCyl);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddExtrudedSolid)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddExtrudedSolid )( 
            IGcadModelSpace * This,
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ double Height,
            /* [in] */ double TaperAngle,
            /* [retval][out] */ IGcad3DSolid **pExtrSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddExtrudedSolidAlongPath)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddExtrudedSolidAlongPath )( 
            IGcadModelSpace * This,
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ IDispatch *Path,
            /* [retval][out] */ IGcad3DSolid **pExtrSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddLeader)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLeader )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT PointsArray,
            /* [in] */ IGcadEntity *Annotation,
            /* [in] */ GcLeaderType Type,
            /* [retval][out] */ IGcadLeader **pLeader);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMText)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMText )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Width,
            /* [in] */ BSTR Text,
            /* [retval][out] */ IGcadMText **pMtext);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddPoint)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPoint )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Point,
            /* [retval][out] */ IGcadPoint **pPoint);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddLightWeightPolyline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLightWeightPolyline )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT VerticesList,
            /* [retval][out] */ IGcadLWPolyline **pLWPolyline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddPolyline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPolyline )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT VerticesList,
            /* [retval][out] */ IGcadPolyline **pPolyline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRay)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRay )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IGcadRay **pRay);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRegion)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRegion )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT ObjectList,
            /* [retval][out] */ VARIANT *pRegions);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRevolvedSolid)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRevolvedSolid )( 
            IGcadModelSpace * This,
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ VARIANT AxisPoint,
            /* [in] */ VARIANT AxisDir,
            /* [in] */ double Angle,
            /* [retval][out] */ IGcad3DSolid **pRevolSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddShape)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddShape )( 
            IGcadModelSpace * This,
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double ScaleFactor,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadShape **pShape);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSolid)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSolid )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [in] */ VARIANT Point4,
            /* [retval][out] */ IGcadSolid **pSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSphere)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSphere )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [retval][out] */ IGcad3DSolid **pSphere);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSpline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSpline )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT PointsArray,
            /* [in] */ VARIANT StartTangent,
            /* [in] */ VARIANT EndTangent,
            /* [retval][out] */ IGcadSpline **pSpline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddText)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddText )( 
            IGcadModelSpace * This,
            /* [in] */ BSTR TextString,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Height,
            /* [retval][out] */ IGcadText **pText);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTolerance)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTolerance )( 
            IGcadModelSpace * This,
            /* [in] */ BSTR Text,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ VARIANT Direction,
            /* [retval][out] */ IGcadTolerance **pTolerance);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTorus)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTorus )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double TorusRadius,
            /* [in] */ double TubeRadius,
            /* [retval][out] */ IGcad3DSolid **pTorus);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTrace)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTrace )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT PointsArray,
            /* [retval][out] */ IGcadTrace **pTrace);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddWedge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddWedge )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Length,
            /* [in] */ double Width,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pWedge);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddXline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddXline )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IGcadXline **pXline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, InsertBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertBlock )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Name,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadBlockReference **pBlkRef);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddHatch)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddHatch )( 
            IGcadModelSpace * This,
            /* [in] */ int PatternType,
            /* [in] */ BSTR PatternName,
            /* [in] */ VARIANT_BOOL Associativity,
            /* [optional][in] */ VARIANT HatchObjectType,
            /* [retval][out] */ IGcadHatch **pHatch);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRaster)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRaster )( 
            IGcadModelSpace * This,
            /* [in] */ BSTR imageFileName,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double ScaleFactor,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadRasterImage **pRaster);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddLine)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLine )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT StartPoint,
            /* [in] */ VARIANT EndPoint,
            /* [retval][out] */ IGcadLine **pLine);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_IsLayout)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsLayout )( 
            IGcadModelSpace * This,
            /* [retval][out] */ VARIANT_BOOL *bIsLayout);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Layout)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layout )( 
            IGcadModelSpace * This,
            /* [retval][out] */ IGcadLayout **pLayout);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_IsXRef)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsXRef )( 
            IGcadModelSpace * This,
            /* [retval][out] */ VARIANT_BOOL *pIsXRref);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMInsertBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMInsertBlock )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Name,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [in] */ long NumRows,
            /* [in] */ long NumColumns,
            /* [in] */ long RowSpacing,
            /* [in] */ long ColumnSpacing,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadMInsertBlock **pMInsertBlk);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddPolyfaceMesh)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPolyfaceMesh )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT VertexList,
            /* [in] */ VARIANT FaceList,
            /* [retval][out] */ IGcadPolyfaceMesh **pPFMesh);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMLine)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMLine )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT VertexList,
            /* [retval][out] */ IGcadMLine **pMLine);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDim3PointAngular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDim3PointAngular )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT AngleVertex,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT TextPoint,
            /* [retval][out] */ IGcadDim3PointAngular **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_XRefDatabase)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XRefDatabase )( 
            IGcadModelSpace * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AttachExternalReference)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttachExternalReference )( 
            IGcadModelSpace * This,
            /* [in] */ BSTR PathName,
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [in] */ VARIANT_BOOL bOverlay,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadExternalReference **pXRef);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Unload)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Unload )( 
            IGcadModelSpace * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Reload)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Reload )( 
            IGcadModelSpace * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Bind)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Bind )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT_BOOL bPrefixName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Detach)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Detach )( 
            IGcadModelSpace * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTable)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTable )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ int NumRows,
            /* [in] */ int NumColumns,
            /* [in] */ double RowHeight,
            /* [in] */ double ColWidth,
            /* [retval][out] */ IGcadTable **pTable);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Path)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            IGcadModelSpace * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Path)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Path )( 
            IGcadModelSpace * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Comments)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Comments )( 
            IGcadModelSpace * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Comments)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Comments )( 
            IGcadModelSpace * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Units)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Units )( 
            IGcadModelSpace * This,
            /* [retval][out] */ GcInsertUnits *pIU);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Units)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Units )( 
            IGcadModelSpace * This,
            /* [in] */ GcInsertUnits pIU);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Explodable)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Explodable )( 
            IGcadModelSpace * This,
            /* [retval][out] */ VARIANT_BOOL *bExplodable);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Explodable)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Explodable )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT_BOOL bExplodable);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_BlockScaling)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BlockScaling )( 
            IGcadModelSpace * This,
            /* [retval][out] */ GcBlockScaling *pBS);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_BlockScaling)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BlockScaling )( 
            IGcadModelSpace * This,
            /* [in] */ GcBlockScaling pBS);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_IsDynamicBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsDynamicBlock )( 
            IGcadModelSpace * This,
            /* [retval][out] */ VARIANT_BOOL *pDynamicBlock);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimArc)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimArc )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT ArcCenter,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT ArcPoint,
            /* [retval][out] */ IGcadDimArcLength **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimRadialLarge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimRadialLarge )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ VARIANT OverrideCenter,
            /* [in] */ VARIANT JogPoint,
            /* [in] */ double JogAngle,
            /* [retval][out] */ IGcadDimRadialLarge **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSection)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSection )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint,
            /* [in] */ VARIANT planeVector,
            /* [retval][out] */ IGcadSection **ppSecPlane);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMLeader)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMLeader )( 
            IGcadModelSpace * This,
            /* [in] */ VARIANT PointsArray,
            /* [out] */ int *leaderLineIndex,
            /* [retval][out] */ IGcadMLeader **pMLeader);
        
        END_INTERFACE
    } IGcadModelSpaceVtbl;

    interface IGcadModelSpace
    {
        CONST_VTBL struct IGcadModelSpaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadModelSpace_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadModelSpace_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadModelSpace_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadModelSpace_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadModelSpace_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadModelSpace_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadModelSpace_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadModelSpace_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadModelSpace_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadModelSpace_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadModelSpace_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadModelSpace_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadModelSpace_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadModelSpace_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadModelSpace_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadModelSpace_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadModelSpace_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadModelSpace_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadModelSpace_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadModelSpace_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadModelSpace_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadModelSpace_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadModelSpace_get_Count(This,pVal)	\
    ( (This)->lpVtbl -> get_Count(This,pVal) ) 

#define IGcadModelSpace_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadModelSpace_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadModelSpace_get_Origin(This,Origin)	\
    ( (This)->lpVtbl -> get_Origin(This,Origin) ) 

#define IGcadModelSpace_put_Origin(This,Origin)	\
    ( (This)->lpVtbl -> put_Origin(This,Origin) ) 

#define IGcadModelSpace_AddCustomObject(This,ClassName,pObject)	\
    ( (This)->lpVtbl -> AddCustomObject(This,ClassName,pObject) ) 

#define IGcadModelSpace_Add3DFace(This,Point1,Point2,point3,Point4,pFace3d)	\
    ( (This)->lpVtbl -> Add3DFace(This,Point1,Point2,point3,Point4,pFace3d) ) 

#define IGcadModelSpace_Add3DMesh(This,M,N,PointsMatrix,pMesh3d)	\
    ( (This)->lpVtbl -> Add3DMesh(This,M,N,PointsMatrix,pMesh3d) ) 

#define IGcadModelSpace_Add3DPoly(This,PointsArray,pPoly3d)	\
    ( (This)->lpVtbl -> Add3DPoly(This,PointsArray,pPoly3d) ) 

#define IGcadModelSpace_AddArc(This,Center,Radius,StartAngle,EndAngle,pArc)	\
    ( (This)->lpVtbl -> AddArc(This,Center,Radius,StartAngle,EndAngle,pArc) ) 

#define IGcadModelSpace_AddAttribute(This,Height,Mode,Prompt,InsertionPoint,Tag,Value,pAttr)	\
    ( (This)->lpVtbl -> AddAttribute(This,Height,Mode,Prompt,InsertionPoint,Tag,Value,pAttr) ) 

#define IGcadModelSpace_AddBox(This,Origin,Length,Width,Height,pBox)	\
    ( (This)->lpVtbl -> AddBox(This,Origin,Length,Width,Height,pBox) ) 

#define IGcadModelSpace_AddCircle(This,Center,Radius,pCircle)	\
    ( (This)->lpVtbl -> AddCircle(This,Center,Radius,pCircle) ) 

#define IGcadModelSpace_AddCone(This,Center,BaseRadius,Height,pCone)	\
    ( (This)->lpVtbl -> AddCone(This,Center,BaseRadius,Height,pCone) ) 

#define IGcadModelSpace_AddCylinder(This,Center,Radius,Height,pCyl)	\
    ( (This)->lpVtbl -> AddCylinder(This,Center,Radius,Height,pCyl) ) 

#define IGcadModelSpace_AddDimAligned(This,ExtLine1Point,ExtLine2Point,TextPosition,pDim)	\
    ( (This)->lpVtbl -> AddDimAligned(This,ExtLine1Point,ExtLine2Point,TextPosition,pDim) ) 

#define IGcadModelSpace_AddDimAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim)	\
    ( (This)->lpVtbl -> AddDimAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim) ) 

#define IGcadModelSpace_AddDimDiametric(This,ChordPoint,FarChordPoint,LeaderLength,pDim)	\
    ( (This)->lpVtbl -> AddDimDiametric(This,ChordPoint,FarChordPoint,LeaderLength,pDim) ) 

#define IGcadModelSpace_AddDimRotated(This,ExtLine1Point,ExtLine2Point,DimLineLocation,RotationAngle,pDim)	\
    ( (This)->lpVtbl -> AddDimRotated(This,ExtLine1Point,ExtLine2Point,DimLineLocation,RotationAngle,pDim) ) 

#define IGcadModelSpace_AddDimOrdinate(This,DefinitionPoint,LeaderEndPoint,UseXAxis,pDim)	\
    ( (This)->lpVtbl -> AddDimOrdinate(This,DefinitionPoint,LeaderEndPoint,UseXAxis,pDim) ) 

#define IGcadModelSpace_AddDimRadial(This,Center,ChordPoint,LeaderLength,pDim)	\
    ( (This)->lpVtbl -> AddDimRadial(This,Center,ChordPoint,LeaderLength,pDim) ) 

#define IGcadModelSpace_AddEllipse(This,Center,MajorAxis,RadiusRatio,pEllipse)	\
    ( (This)->lpVtbl -> AddEllipse(This,Center,MajorAxis,RadiusRatio,pEllipse) ) 

#define IGcadModelSpace_AddEllipticalCone(This,Center,MajorRadius,MinorRadius,Height,pEllipCone)	\
    ( (This)->lpVtbl -> AddEllipticalCone(This,Center,MajorRadius,MinorRadius,Height,pEllipCone) ) 

#define IGcadModelSpace_AddEllipticalCylinder(This,Center,MajorRadius,MinorRadius,Height,pEllipCyl)	\
    ( (This)->lpVtbl -> AddEllipticalCylinder(This,Center,MajorRadius,MinorRadius,Height,pEllipCyl) ) 

#define IGcadModelSpace_AddExtrudedSolid(This,Profile,Height,TaperAngle,pExtrSolid)	\
    ( (This)->lpVtbl -> AddExtrudedSolid(This,Profile,Height,TaperAngle,pExtrSolid) ) 

#define IGcadModelSpace_AddExtrudedSolidAlongPath(This,Profile,Path,pExtrSolid)	\
    ( (This)->lpVtbl -> AddExtrudedSolidAlongPath(This,Profile,Path,pExtrSolid) ) 

#define IGcadModelSpace_AddLeader(This,PointsArray,Annotation,Type,pLeader)	\
    ( (This)->lpVtbl -> AddLeader(This,PointsArray,Annotation,Type,pLeader) ) 

#define IGcadModelSpace_AddMText(This,InsertionPoint,Width,Text,pMtext)	\
    ( (This)->lpVtbl -> AddMText(This,InsertionPoint,Width,Text,pMtext) ) 

#define IGcadModelSpace_AddPoint(This,Point,pPoint)	\
    ( (This)->lpVtbl -> AddPoint(This,Point,pPoint) ) 

#define IGcadModelSpace_AddLightWeightPolyline(This,VerticesList,pLWPolyline)	\
    ( (This)->lpVtbl -> AddLightWeightPolyline(This,VerticesList,pLWPolyline) ) 

#define IGcadModelSpace_AddPolyline(This,VerticesList,pPolyline)	\
    ( (This)->lpVtbl -> AddPolyline(This,VerticesList,pPolyline) ) 

#define IGcadModelSpace_AddRay(This,Point1,Point2,pRay)	\
    ( (This)->lpVtbl -> AddRay(This,Point1,Point2,pRay) ) 

#define IGcadModelSpace_AddRegion(This,ObjectList,pRegions)	\
    ( (This)->lpVtbl -> AddRegion(This,ObjectList,pRegions) ) 

#define IGcadModelSpace_AddRevolvedSolid(This,Profile,AxisPoint,AxisDir,Angle,pRevolSolid)	\
    ( (This)->lpVtbl -> AddRevolvedSolid(This,Profile,AxisPoint,AxisDir,Angle,pRevolSolid) ) 

#define IGcadModelSpace_AddShape(This,Name,InsertionPoint,ScaleFactor,RotationAngle,pShape)	\
    ( (This)->lpVtbl -> AddShape(This,Name,InsertionPoint,ScaleFactor,RotationAngle,pShape) ) 

#define IGcadModelSpace_AddSolid(This,Point1,Point2,point3,Point4,pSolid)	\
    ( (This)->lpVtbl -> AddSolid(This,Point1,Point2,point3,Point4,pSolid) ) 

#define IGcadModelSpace_AddSphere(This,Center,Radius,pSphere)	\
    ( (This)->lpVtbl -> AddSphere(This,Center,Radius,pSphere) ) 

#define IGcadModelSpace_AddSpline(This,PointsArray,StartTangent,EndTangent,pSpline)	\
    ( (This)->lpVtbl -> AddSpline(This,PointsArray,StartTangent,EndTangent,pSpline) ) 

#define IGcadModelSpace_AddText(This,TextString,InsertionPoint,Height,pText)	\
    ( (This)->lpVtbl -> AddText(This,TextString,InsertionPoint,Height,pText) ) 

#define IGcadModelSpace_AddTolerance(This,Text,InsertionPoint,Direction,pTolerance)	\
    ( (This)->lpVtbl -> AddTolerance(This,Text,InsertionPoint,Direction,pTolerance) ) 

#define IGcadModelSpace_AddTorus(This,Center,TorusRadius,TubeRadius,pTorus)	\
    ( (This)->lpVtbl -> AddTorus(This,Center,TorusRadius,TubeRadius,pTorus) ) 

#define IGcadModelSpace_AddTrace(This,PointsArray,pTrace)	\
    ( (This)->lpVtbl -> AddTrace(This,PointsArray,pTrace) ) 

#define IGcadModelSpace_AddWedge(This,Center,Length,Width,Height,pWedge)	\
    ( (This)->lpVtbl -> AddWedge(This,Center,Length,Width,Height,pWedge) ) 

#define IGcadModelSpace_AddXline(This,Point1,Point2,pXline)	\
    ( (This)->lpVtbl -> AddXline(This,Point1,Point2,pXline) ) 

#define IGcadModelSpace_InsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,Password,pBlkRef)	\
    ( (This)->lpVtbl -> InsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,Password,pBlkRef) ) 

#define IGcadModelSpace_AddHatch(This,PatternType,PatternName,Associativity,HatchObjectType,pHatch)	\
    ( (This)->lpVtbl -> AddHatch(This,PatternType,PatternName,Associativity,HatchObjectType,pHatch) ) 

#define IGcadModelSpace_AddRaster(This,imageFileName,InsertionPoint,ScaleFactor,RotationAngle,pRaster)	\
    ( (This)->lpVtbl -> AddRaster(This,imageFileName,InsertionPoint,ScaleFactor,RotationAngle,pRaster) ) 

#define IGcadModelSpace_AddLine(This,StartPoint,EndPoint,pLine)	\
    ( (This)->lpVtbl -> AddLine(This,StartPoint,EndPoint,pLine) ) 

#define IGcadModelSpace_get_IsLayout(This,bIsLayout)	\
    ( (This)->lpVtbl -> get_IsLayout(This,bIsLayout) ) 

#define IGcadModelSpace_get_Layout(This,pLayout)	\
    ( (This)->lpVtbl -> get_Layout(This,pLayout) ) 

#define IGcadModelSpace_get_IsXRef(This,pIsXRref)	\
    ( (This)->lpVtbl -> get_IsXRef(This,pIsXRref) ) 

#define IGcadModelSpace_AddMInsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,NumRows,NumColumns,RowSpacing,ColumnSpacing,Password,pMInsertBlk)	\
    ( (This)->lpVtbl -> AddMInsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,NumRows,NumColumns,RowSpacing,ColumnSpacing,Password,pMInsertBlk) ) 

#define IGcadModelSpace_AddPolyfaceMesh(This,VertexList,FaceList,pPFMesh)	\
    ( (This)->lpVtbl -> AddPolyfaceMesh(This,VertexList,FaceList,pPFMesh) ) 

#define IGcadModelSpace_AddMLine(This,VertexList,pMLine)	\
    ( (This)->lpVtbl -> AddMLine(This,VertexList,pMLine) ) 

#define IGcadModelSpace_AddDim3PointAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim)	\
    ( (This)->lpVtbl -> AddDim3PointAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim) ) 

#define IGcadModelSpace_get_XRefDatabase(This,pDatabase)	\
    ( (This)->lpVtbl -> get_XRefDatabase(This,pDatabase) ) 

#define IGcadModelSpace_AttachExternalReference(This,PathName,Name,InsertionPoint,Xscale,Yscale,Zscale,Rotation,bOverlay,Password,pXRef)	\
    ( (This)->lpVtbl -> AttachExternalReference(This,PathName,Name,InsertionPoint,Xscale,Yscale,Zscale,Rotation,bOverlay,Password,pXRef) ) 

#define IGcadModelSpace_Unload(This)	\
    ( (This)->lpVtbl -> Unload(This) ) 

#define IGcadModelSpace_Reload(This)	\
    ( (This)->lpVtbl -> Reload(This) ) 

#define IGcadModelSpace_Bind(This,bPrefixName)	\
    ( (This)->lpVtbl -> Bind(This,bPrefixName) ) 

#define IGcadModelSpace_Detach(This)	\
    ( (This)->lpVtbl -> Detach(This) ) 

#define IGcadModelSpace_AddTable(This,InsertionPoint,NumRows,NumColumns,RowHeight,ColWidth,pTable)	\
    ( (This)->lpVtbl -> AddTable(This,InsertionPoint,NumRows,NumColumns,RowHeight,ColWidth,pTable) ) 

#define IGcadModelSpace_get_Path(This,bstrName)	\
    ( (This)->lpVtbl -> get_Path(This,bstrName) ) 

#define IGcadModelSpace_put_Path(This,bstrName)	\
    ( (This)->lpVtbl -> put_Path(This,bstrName) ) 

#define IGcadModelSpace_get_Comments(This,bstrName)	\
    ( (This)->lpVtbl -> get_Comments(This,bstrName) ) 

#define IGcadModelSpace_put_Comments(This,bstrName)	\
    ( (This)->lpVtbl -> put_Comments(This,bstrName) ) 

#define IGcadModelSpace_get_Units(This,pIU)	\
    ( (This)->lpVtbl -> get_Units(This,pIU) ) 

#define IGcadModelSpace_put_Units(This,pIU)	\
    ( (This)->lpVtbl -> put_Units(This,pIU) ) 

#define IGcadModelSpace_get_Explodable(This,bExplodable)	\
    ( (This)->lpVtbl -> get_Explodable(This,bExplodable) ) 

#define IGcadModelSpace_put_Explodable(This,bExplodable)	\
    ( (This)->lpVtbl -> put_Explodable(This,bExplodable) ) 

#define IGcadModelSpace_get_BlockScaling(This,pBS)	\
    ( (This)->lpVtbl -> get_BlockScaling(This,pBS) ) 

#define IGcadModelSpace_put_BlockScaling(This,pBS)	\
    ( (This)->lpVtbl -> put_BlockScaling(This,pBS) ) 

#define IGcadModelSpace_get_IsDynamicBlock(This,pDynamicBlock)	\
    ( (This)->lpVtbl -> get_IsDynamicBlock(This,pDynamicBlock) ) 

#define IGcadModelSpace_AddDimArc(This,ArcCenter,FirstEndPoint,SecondEndPoint,ArcPoint,pDim)	\
    ( (This)->lpVtbl -> AddDimArc(This,ArcCenter,FirstEndPoint,SecondEndPoint,ArcPoint,pDim) ) 

#define IGcadModelSpace_AddDimRadialLarge(This,Center,ChordPoint,OverrideCenter,JogPoint,JogAngle,pDim)	\
    ( (This)->lpVtbl -> AddDimRadialLarge(This,Center,ChordPoint,OverrideCenter,JogPoint,JogAngle,pDim) ) 

#define IGcadModelSpace_AddSection(This,FromPoint,ToPoint,planeVector,ppSecPlane)	\
    ( (This)->lpVtbl -> AddSection(This,FromPoint,ToPoint,planeVector,ppSecPlane) ) 

#define IGcadModelSpace_AddMLeader(This,PointsArray,leaderLineIndex,pMLeader)	\
    ( (This)->lpVtbl -> AddMLeader(This,PointsArray,leaderLineIndex,pMLeader) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadModelSpace_INTERFACE_DEFINED__ */


#ifndef __IGcadEntity_INTERFACE_DEFINED__
#define __IGcadEntity_INTERFACE_DEFINED__

/* interface IGcadEntity */
/* [unique][oleautomation][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IGcadEntity;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D78C594E-0412-4D7A-919A-2B6D1662D337")
    IGcadEntity : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TrueColor( 
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TrueColor( 
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Layer( 
            /* [retval][out] */ BSTR *Layer) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Layer( 
            /* [in] */ BSTR Layer) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LinetypeScale( 
            /* [retval][out] */ GCAD_NOUNITS *ltScale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LinetypeScale( 
            /* [in] */ GCAD_NOUNITS ltScale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Visible( 
            /* [retval][out] */ VARIANT_BOOL *bVisible) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Visible( 
            /* [in] */ VARIANT_BOOL bVisible) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArrayPolar( 
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArrayRectangular( 
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Highlight( 
            /* [in] */ VARIANT_BOOL HighlightFlag) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Copy( 
            /* [retval][out] */ IDispatch **pCopyObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Move( 
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Rotate( 
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Rotate3D( 
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Mirror( 
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Mirror3D( 
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ScaleEntity( 
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TransformBy( 
            /* [in] */ VARIANT TransformationMatrix) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Update( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBoundingBox( 
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IntersectWith( 
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotStyleName( 
            /* [retval][out] */ BSTR *plotStyle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PlotStyleName( 
            /* [in] */ BSTR plotStyle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Lineweight( 
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Lineweight( 
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EntityTransparency( 
            /* [retval][out] */ BSTR *transparency) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EntityTransparency( 
            /* [in] */ BSTR transparency) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Hyperlinks( 
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Material( 
            /* [retval][out] */ BSTR *Material) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Material( 
            /* [in] */ BSTR Material) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_EntityName( 
            /* [retval][out] */ BSTR *EntityName) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_EntityType( 
            /* [retval][out] */ long *entType) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_Color( 
            /* [retval][out] */ GCAD_COLOR *color) = 0;
        
        virtual /* [helpstring][hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_Color( 
            /* [in] */ GCAD_COLOR color) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadEntityVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadEntity * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadEntity * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadEntity * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadEntity * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadEntity * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadEntity * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadEntity * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadEntity * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadEntity * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadEntity * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadEntity * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadEntity * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadEntity * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadEntity * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadEntity * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadEntity * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadEntity * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadEntity * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadEntity * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadEntity * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadEntity * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadEntity * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadEntity * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadEntity * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadEntity * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadEntity * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadEntity * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadEntity * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadEntity * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadEntity * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadEntity * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadEntity * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadEntity * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadEntity * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadEntity * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadEntity * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadEntity * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadEntity * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadEntity * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadEntity * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadEntity * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadEntity * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadEntity * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadEntity * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadEntity * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadEntity * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadEntity * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadEntity * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadEntity * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadEntity * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadEntity * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadEntity * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadEntity * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadEntity * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadEntity * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadEntity * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadEntity * This,
            /* [in] */ GCAD_COLOR color);
        
        END_INTERFACE
    } IGcadEntityVtbl;

    interface IGcadEntity
    {
        CONST_VTBL struct IGcadEntityVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadEntity_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadEntity_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadEntity_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadEntity_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadEntity_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadEntity_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadEntity_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadEntity_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadEntity_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadEntity_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadEntity_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadEntity_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadEntity_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadEntity_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadEntity_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadEntity_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadEntity_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadEntity_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadEntity_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadEntity_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadEntity_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadEntity_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadEntity_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadEntity_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadEntity_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadEntity_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadEntity_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadEntity_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadEntity_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadEntity_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadEntity_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadEntity_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadEntity_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadEntity_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadEntity_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadEntity_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadEntity_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadEntity_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadEntity_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadEntity_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadEntity_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadEntity_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadEntity_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadEntity_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadEntity_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadEntity_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadEntity_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadEntity_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadEntity_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadEntity_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadEntity_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadEntity_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadEntity_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadEntity_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadEntity_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadEntity_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadEntity_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadEntity_INTERFACE_DEFINED__ */


#ifndef __IGcadGcCmColor_INTERFACE_DEFINED__
#define __IGcadGcCmColor_INTERFACE_DEFINED__

/* interface IGcadGcCmColor */
/* [unique][oleautomation][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IGcadGcCmColor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("89560CD6-F641-4D1B-A62D-9C979D9B07BF")
    IGcadGcCmColor : public IDispatch
    {
    public:
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EntityColor( 
            /* [in] */ long eColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EntityColor( 
            /* [retval][out] */ long *eColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ColorName( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BookName( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNames( 
            /* [in] */ BSTR ColorName,
            /* [in] */ BSTR BookName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Delete( void) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Red( 
            /* [retval][out] */ long *Red) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Blue( 
            /* [retval][out] */ long *Blue) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Green( 
            /* [retval][out] */ long *Green) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetRGB( 
            /* [in] */ long Red,
            /* [in] */ long Green,
            /* [in] */ long Blue) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ColorMethod( 
            /* [in] */ GcColorMethod Flags) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ColorMethod( 
            /* [retval][out] */ GcColorMethod *Flags) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ColorIndex( 
            /* [retval][out] */ GcColor *color) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ColorIndex( 
            /* [in] */ GcColor color) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetColorBookColor( 
            /* [in] */ BSTR BookName,
            /* [in] */ BSTR ColorName) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadGcCmColorVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadGcCmColor * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadGcCmColor * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadGcCmColor * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadGcCmColor * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadGcCmColor * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadGcCmColor * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadGcCmColor * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, put_EntityColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityColor )( 
            IGcadGcCmColor * This,
            /* [in] */ long eColor);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, get_EntityColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityColor )( 
            IGcadGcCmColor * This,
            /* [retval][out] */ long *eColor);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, get_ColorName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorName )( 
            IGcadGcCmColor * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, get_BookName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BookName )( 
            IGcadGcCmColor * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, SetNames)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNames )( 
            IGcadGcCmColor * This,
            /* [in] */ BSTR ColorName,
            /* [in] */ BSTR BookName);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadGcCmColor * This);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, get_Red)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Red )( 
            IGcadGcCmColor * This,
            /* [retval][out] */ long *Red);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, get_Blue)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Blue )( 
            IGcadGcCmColor * This,
            /* [retval][out] */ long *Blue);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, get_Green)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Green )( 
            IGcadGcCmColor * This,
            /* [retval][out] */ long *Green);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, SetRGB)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetRGB )( 
            IGcadGcCmColor * This,
            /* [in] */ long Red,
            /* [in] */ long Green,
            /* [in] */ long Blue);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, put_ColorMethod)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorMethod )( 
            IGcadGcCmColor * This,
            /* [in] */ GcColorMethod Flags);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, get_ColorMethod)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorMethod )( 
            IGcadGcCmColor * This,
            /* [retval][out] */ GcColorMethod *Flags);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, get_ColorIndex)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorIndex )( 
            IGcadGcCmColor * This,
            /* [retval][out] */ GcColor *color);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, put_ColorIndex)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorIndex )( 
            IGcadGcCmColor * This,
            /* [in] */ GcColor color);
        
        DECLSPEC_XFGVIRT(IGcadGcCmColor, SetColorBookColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetColorBookColor )( 
            IGcadGcCmColor * This,
            /* [in] */ BSTR BookName,
            /* [in] */ BSTR ColorName);
        
        END_INTERFACE
    } IGcadGcCmColorVtbl;

    interface IGcadGcCmColor
    {
        CONST_VTBL struct IGcadGcCmColorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadGcCmColor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadGcCmColor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadGcCmColor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadGcCmColor_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadGcCmColor_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadGcCmColor_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadGcCmColor_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadGcCmColor_put_EntityColor(This,eColor)	\
    ( (This)->lpVtbl -> put_EntityColor(This,eColor) ) 

#define IGcadGcCmColor_get_EntityColor(This,eColor)	\
    ( (This)->lpVtbl -> get_EntityColor(This,eColor) ) 

#define IGcadGcCmColor_get_ColorName(This,Name)	\
    ( (This)->lpVtbl -> get_ColorName(This,Name) ) 

#define IGcadGcCmColor_get_BookName(This,Name)	\
    ( (This)->lpVtbl -> get_BookName(This,Name) ) 

#define IGcadGcCmColor_SetNames(This,ColorName,BookName)	\
    ( (This)->lpVtbl -> SetNames(This,ColorName,BookName) ) 

#define IGcadGcCmColor_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadGcCmColor_get_Red(This,Red)	\
    ( (This)->lpVtbl -> get_Red(This,Red) ) 

#define IGcadGcCmColor_get_Blue(This,Blue)	\
    ( (This)->lpVtbl -> get_Blue(This,Blue) ) 

#define IGcadGcCmColor_get_Green(This,Green)	\
    ( (This)->lpVtbl -> get_Green(This,Green) ) 

#define IGcadGcCmColor_SetRGB(This,Red,Green,Blue)	\
    ( (This)->lpVtbl -> SetRGB(This,Red,Green,Blue) ) 

#define IGcadGcCmColor_put_ColorMethod(This,Flags)	\
    ( (This)->lpVtbl -> put_ColorMethod(This,Flags) ) 

#define IGcadGcCmColor_get_ColorMethod(This,Flags)	\
    ( (This)->lpVtbl -> get_ColorMethod(This,Flags) ) 

#define IGcadGcCmColor_get_ColorIndex(This,color)	\
    ( (This)->lpVtbl -> get_ColorIndex(This,color) ) 

#define IGcadGcCmColor_put_ColorIndex(This,color)	\
    ( (This)->lpVtbl -> put_ColorIndex(This,color) ) 

#define IGcadGcCmColor_SetColorBookColor(This,BookName,ColorName)	\
    ( (This)->lpVtbl -> SetColorBookColor(This,BookName,ColorName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadGcCmColor_INTERFACE_DEFINED__ */


#ifndef __IGcadHyperlinks_INTERFACE_DEFINED__
#define __IGcadHyperlinks_INTERFACE_DEFINED__

/* interface IGcadHyperlinks */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadHyperlinks;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3B00FF4A-56D0-4CB2-8D6D-E1EB343ECBDE")
    IGcadHyperlinks : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ long Index,
            /* [retval][out] */ IGcadHyperlink **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ IDispatch **ApplicationObject) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [optional][in] */ VARIANT Description,
            /* [optional][in] */ VARIANT NamedLocation,
            /* [retval][out] */ IGcadHyperlink **pHyperlink) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadHyperlinksVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadHyperlinks * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadHyperlinks * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadHyperlinks * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadHyperlinks * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadHyperlinks * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadHyperlinks * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadHyperlinks * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadHyperlinks, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadHyperlinks * This,
            /* [in] */ long Index,
            /* [retval][out] */ IGcadHyperlink **pItem);
        
        DECLSPEC_XFGVIRT(IGcadHyperlinks, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadHyperlinks * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadHyperlinks, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadHyperlinks * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadHyperlinks, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadHyperlinks * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadHyperlinks, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadHyperlinks * This,
            /* [in] */ BSTR Name,
            /* [optional][in] */ VARIANT Description,
            /* [optional][in] */ VARIANT NamedLocation,
            /* [retval][out] */ IGcadHyperlink **pHyperlink);
        
        END_INTERFACE
    } IGcadHyperlinksVtbl;

    interface IGcadHyperlinks
    {
        CONST_VTBL struct IGcadHyperlinksVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadHyperlinks_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadHyperlinks_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadHyperlinks_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadHyperlinks_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadHyperlinks_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadHyperlinks_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadHyperlinks_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadHyperlinks_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadHyperlinks_get_Count(This,pVal)	\
    ( (This)->lpVtbl -> get_Count(This,pVal) ) 

#define IGcadHyperlinks_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadHyperlinks_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadHyperlinks_Add(This,Name,Description,NamedLocation,pHyperlink)	\
    ( (This)->lpVtbl -> Add(This,Name,Description,NamedLocation,pHyperlink) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadHyperlinks_INTERFACE_DEFINED__ */


#ifndef __IGcadHyperlink_INTERFACE_DEFINED__
#define __IGcadHyperlink_INTERFACE_DEFINED__

/* interface IGcadHyperlink */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadHyperlink;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D1DF7DB6-95E1-4721-AE9D-0C668FB28825")
    IGcadHyperlink : public IDispatch
    {
    public:
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_URL( 
            /* [in] */ BSTR URLPath) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_URL( 
            /* [retval][out] */ BSTR *URLPath) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_URLDescription( 
            /* [in] */ BSTR Description) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_URLDescription( 
            /* [retval][out] */ BSTR *Description) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ IDispatch **ApplicationObject) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Delete( void) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_URLNamedLocation( 
            /* [in] */ BSTR Location) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_URLNamedLocation( 
            /* [retval][out] */ BSTR *Location) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadHyperlinkVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadHyperlink * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadHyperlink * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadHyperlink * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadHyperlink * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadHyperlink * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadHyperlink * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadHyperlink * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadHyperlink, put_URL)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_URL )( 
            IGcadHyperlink * This,
            /* [in] */ BSTR URLPath);
        
        DECLSPEC_XFGVIRT(IGcadHyperlink, get_URL)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_URL )( 
            IGcadHyperlink * This,
            /* [retval][out] */ BSTR *URLPath);
        
        DECLSPEC_XFGVIRT(IGcadHyperlink, put_URLDescription)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_URLDescription )( 
            IGcadHyperlink * This,
            /* [in] */ BSTR Description);
        
        DECLSPEC_XFGVIRT(IGcadHyperlink, get_URLDescription)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_URLDescription )( 
            IGcadHyperlink * This,
            /* [retval][out] */ BSTR *Description);
        
        DECLSPEC_XFGVIRT(IGcadHyperlink, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadHyperlink * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadHyperlink, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadHyperlink * This);
        
        DECLSPEC_XFGVIRT(IGcadHyperlink, put_URLNamedLocation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_URLNamedLocation )( 
            IGcadHyperlink * This,
            /* [in] */ BSTR Location);
        
        DECLSPEC_XFGVIRT(IGcadHyperlink, get_URLNamedLocation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_URLNamedLocation )( 
            IGcadHyperlink * This,
            /* [retval][out] */ BSTR *Location);
        
        END_INTERFACE
    } IGcadHyperlinkVtbl;

    interface IGcadHyperlink
    {
        CONST_VTBL struct IGcadHyperlinkVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadHyperlink_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadHyperlink_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadHyperlink_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadHyperlink_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadHyperlink_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadHyperlink_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadHyperlink_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadHyperlink_put_URL(This,URLPath)	\
    ( (This)->lpVtbl -> put_URL(This,URLPath) ) 

#define IGcadHyperlink_get_URL(This,URLPath)	\
    ( (This)->lpVtbl -> get_URL(This,URLPath) ) 

#define IGcadHyperlink_put_URLDescription(This,Description)	\
    ( (This)->lpVtbl -> put_URLDescription(This,Description) ) 

#define IGcadHyperlink_get_URLDescription(This,Description)	\
    ( (This)->lpVtbl -> get_URLDescription(This,Description) ) 

#define IGcadHyperlink_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadHyperlink_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadHyperlink_put_URLNamedLocation(This,Location)	\
    ( (This)->lpVtbl -> put_URLNamedLocation(This,Location) ) 

#define IGcadHyperlink_get_URLNamedLocation(This,Location)	\
    ( (This)->lpVtbl -> get_URLNamedLocation(This,Location) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadHyperlink_INTERFACE_DEFINED__ */


#ifndef __IGcad3DFace_INTERFACE_DEFINED__
#define __IGcad3DFace_INTERFACE_DEFINED__

/* interface IGcad3DFace */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcad3DFace;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("46250F63-F4E2-4C99-A12B-0471714BC659")
    IGcad3DFace : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *corners) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT corners) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VisibilityEdge1( 
            /* [retval][out] */ VARIANT_BOOL *visibility) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_VisibilityEdge1( 
            /* [in] */ VARIANT_BOOL visibility) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VisibilityEdge2( 
            /* [retval][out] */ VARIANT_BOOL *visibility) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_VisibilityEdge2( 
            /* [in] */ VARIANT_BOOL visibility) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VisibilityEdge3( 
            /* [retval][out] */ VARIANT_BOOL *visibility) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_VisibilityEdge3( 
            /* [in] */ VARIANT_BOOL visibility) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VisibilityEdge4( 
            /* [retval][out] */ VARIANT_BOOL *visibility) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_VisibilityEdge4( 
            /* [in] */ VARIANT_BOOL visibility) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetInvisibleEdge( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT_BOOL *bVisible) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetInvisibleEdge( 
            /* [in] */ int Index,
            /* [in] */ VARIANT_BOOL State) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinate( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinate( 
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcad3DFaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcad3DFace * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcad3DFace * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcad3DFace * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcad3DFace * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcad3DFace * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcad3DFace * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcad3DFace * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcad3DFace * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcad3DFace * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcad3DFace * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcad3DFace * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcad3DFace * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcad3DFace * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcad3DFace * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcad3DFace * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcad3DFace * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcad3DFace * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcad3DFace * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcad3DFace * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcad3DFace * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcad3DFace * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcad3DFace * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcad3DFace * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcad3DFace * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcad3DFace * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcad3DFace * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcad3DFace * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcad3DFace * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcad3DFace * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcad3DFace * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcad3DFace * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcad3DFace * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcad3DFace * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcad3DFace * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcad3DFace * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcad3DFace * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcad3DFace * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcad3DFace * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcad3DFace * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcad3DFace * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcad3DFace * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcad3DFace * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcad3DFace * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcad3DFace * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcad3DFace * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcad3DFace * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcad3DFace * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcad3DFace * This,
            /* [retval][out] */ VARIANT *corners);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT corners);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, get_VisibilityEdge1)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VisibilityEdge1 )( 
            IGcad3DFace * This,
            /* [retval][out] */ VARIANT_BOOL *visibility);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, put_VisibilityEdge1)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VisibilityEdge1 )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT_BOOL visibility);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, get_VisibilityEdge2)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VisibilityEdge2 )( 
            IGcad3DFace * This,
            /* [retval][out] */ VARIANT_BOOL *visibility);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, put_VisibilityEdge2)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VisibilityEdge2 )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT_BOOL visibility);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, get_VisibilityEdge3)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VisibilityEdge3 )( 
            IGcad3DFace * This,
            /* [retval][out] */ VARIANT_BOOL *visibility);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, put_VisibilityEdge3)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VisibilityEdge3 )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT_BOOL visibility);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, get_VisibilityEdge4)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VisibilityEdge4 )( 
            IGcad3DFace * This,
            /* [retval][out] */ VARIANT_BOOL *visibility);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, put_VisibilityEdge4)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VisibilityEdge4 )( 
            IGcad3DFace * This,
            /* [in] */ VARIANT_BOOL visibility);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, GetInvisibleEdge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetInvisibleEdge )( 
            IGcad3DFace * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, SetInvisibleEdge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetInvisibleEdge )( 
            IGcad3DFace * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT_BOOL State);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcad3DFace * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcad3DFace, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcad3DFace * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        END_INTERFACE
    } IGcad3DFaceVtbl;

    interface IGcad3DFace
    {
        CONST_VTBL struct IGcad3DFaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcad3DFace_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcad3DFace_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcad3DFace_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcad3DFace_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcad3DFace_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcad3DFace_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcad3DFace_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcad3DFace_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcad3DFace_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcad3DFace_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcad3DFace_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcad3DFace_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcad3DFace_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcad3DFace_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcad3DFace_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcad3DFace_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcad3DFace_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcad3DFace_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcad3DFace_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcad3DFace_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcad3DFace_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcad3DFace_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcad3DFace_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcad3DFace_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcad3DFace_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcad3DFace_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcad3DFace_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcad3DFace_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcad3DFace_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcad3DFace_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcad3DFace_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcad3DFace_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcad3DFace_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcad3DFace_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcad3DFace_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcad3DFace_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcad3DFace_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcad3DFace_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcad3DFace_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcad3DFace_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcad3DFace_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcad3DFace_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcad3DFace_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcad3DFace_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcad3DFace_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcad3DFace_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcad3DFace_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcad3DFace_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcad3DFace_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcad3DFace_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcad3DFace_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcad3DFace_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcad3DFace_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcad3DFace_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcad3DFace_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcad3DFace_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcad3DFace_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcad3DFace_get_Coordinates(This,corners)	\
    ( (This)->lpVtbl -> get_Coordinates(This,corners) ) 

#define IGcad3DFace_put_Coordinates(This,corners)	\
    ( (This)->lpVtbl -> put_Coordinates(This,corners) ) 

#define IGcad3DFace_get_VisibilityEdge1(This,visibility)	\
    ( (This)->lpVtbl -> get_VisibilityEdge1(This,visibility) ) 

#define IGcad3DFace_put_VisibilityEdge1(This,visibility)	\
    ( (This)->lpVtbl -> put_VisibilityEdge1(This,visibility) ) 

#define IGcad3DFace_get_VisibilityEdge2(This,visibility)	\
    ( (This)->lpVtbl -> get_VisibilityEdge2(This,visibility) ) 

#define IGcad3DFace_put_VisibilityEdge2(This,visibility)	\
    ( (This)->lpVtbl -> put_VisibilityEdge2(This,visibility) ) 

#define IGcad3DFace_get_VisibilityEdge3(This,visibility)	\
    ( (This)->lpVtbl -> get_VisibilityEdge3(This,visibility) ) 

#define IGcad3DFace_put_VisibilityEdge3(This,visibility)	\
    ( (This)->lpVtbl -> put_VisibilityEdge3(This,visibility) ) 

#define IGcad3DFace_get_VisibilityEdge4(This,visibility)	\
    ( (This)->lpVtbl -> get_VisibilityEdge4(This,visibility) ) 

#define IGcad3DFace_put_VisibilityEdge4(This,visibility)	\
    ( (This)->lpVtbl -> put_VisibilityEdge4(This,visibility) ) 

#define IGcad3DFace_GetInvisibleEdge(This,Index,bVisible)	\
    ( (This)->lpVtbl -> GetInvisibleEdge(This,Index,bVisible) ) 

#define IGcad3DFace_SetInvisibleEdge(This,Index,State)	\
    ( (This)->lpVtbl -> SetInvisibleEdge(This,Index,State) ) 

#define IGcad3DFace_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcad3DFace_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcad3DFace_INTERFACE_DEFINED__ */


#ifndef __IGcadPolygonMesh_INTERFACE_DEFINED__
#define __IGcadPolygonMesh_INTERFACE_DEFINED__

/* interface IGcadPolygonMesh */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadPolygonMesh;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A48E1718-9751-4ACD-BC5E-A247DAC5FC44")
    IGcadPolygonMesh : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *Coordinates) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT Coordinates) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MClose( 
            /* [retval][out] */ VARIANT_BOOL *bClose) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MClose( 
            /* [in] */ VARIANT_BOOL bClose) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NClose( 
            /* [retval][out] */ VARIANT_BOOL *bClose) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_NClose( 
            /* [in] */ VARIANT_BOOL bClose) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MDensity( 
            /* [retval][out] */ long *density) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MDensity( 
            /* [in] */ long density) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NDensity( 
            /* [retval][out] */ long *density) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_NDensity( 
            /* [in] */ long density) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MVertexCount( 
            /* [retval][out] */ long *Count) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NVertexCount( 
            /* [retval][out] */ long *Count) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ GcPolymeshType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Type( 
            /* [in] */ GcPolymeshType Type) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AppendVertex( 
            /* [in] */ VARIANT vertex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Explode( 
            /* [retval][out] */ VARIANT *pArrayObjs) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinate( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinate( 
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPolygonMeshVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPolygonMesh * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPolygonMesh * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPolygonMesh * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPolygonMesh * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPolygonMesh * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPolygonMesh * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPolygonMesh * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPolygonMesh * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPolygonMesh * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPolygonMesh * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadPolygonMesh * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadPolygonMesh * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadPolygonMesh * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadPolygonMesh * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadPolygonMesh * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadPolygonMesh * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadPolygonMesh * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadPolygonMesh * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadPolygonMesh * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadPolygonMesh * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadPolygonMesh * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadPolygonMesh * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadPolygonMesh * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadPolygonMesh * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ VARIANT *Coordinates);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT Coordinates);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, get_MClose)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MClose )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ VARIANT_BOOL *bClose);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, put_MClose)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MClose )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT_BOOL bClose);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, get_NClose)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NClose )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ VARIANT_BOOL *bClose);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, put_NClose)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NClose )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT_BOOL bClose);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, get_MDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MDensity )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, put_MDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MDensity )( 
            IGcadPolygonMesh * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, get_NDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NDensity )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, put_NDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NDensity )( 
            IGcadPolygonMesh * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, get_MVertexCount)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MVertexCount )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ long *Count);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, get_NVertexCount)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NVertexCount )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ long *Count);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, get_Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ GcPolymeshType *Type);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, put_Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Type )( 
            IGcadPolygonMesh * This,
            /* [in] */ GcPolymeshType Type);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, AppendVertex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AppendVertex )( 
            IGcadPolygonMesh * This,
            /* [in] */ VARIANT vertex);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, Explode)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Explode )( 
            IGcadPolygonMesh * This,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcadPolygonMesh * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadPolygonMesh, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcadPolygonMesh * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        END_INTERFACE
    } IGcadPolygonMeshVtbl;

    interface IGcadPolygonMesh
    {
        CONST_VTBL struct IGcadPolygonMeshVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPolygonMesh_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPolygonMesh_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPolygonMesh_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPolygonMesh_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPolygonMesh_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPolygonMesh_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPolygonMesh_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPolygonMesh_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPolygonMesh_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPolygonMesh_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPolygonMesh_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPolygonMesh_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPolygonMesh_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPolygonMesh_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPolygonMesh_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPolygonMesh_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPolygonMesh_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPolygonMesh_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPolygonMesh_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPolygonMesh_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPolygonMesh_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadPolygonMesh_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadPolygonMesh_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadPolygonMesh_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadPolygonMesh_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadPolygonMesh_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadPolygonMesh_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadPolygonMesh_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadPolygonMesh_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadPolygonMesh_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadPolygonMesh_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadPolygonMesh_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadPolygonMesh_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadPolygonMesh_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadPolygonMesh_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadPolygonMesh_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadPolygonMesh_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadPolygonMesh_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadPolygonMesh_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadPolygonMesh_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadPolygonMesh_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadPolygonMesh_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadPolygonMesh_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadPolygonMesh_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadPolygonMesh_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadPolygonMesh_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadPolygonMesh_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadPolygonMesh_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadPolygonMesh_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadPolygonMesh_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadPolygonMesh_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadPolygonMesh_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadPolygonMesh_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadPolygonMesh_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadPolygonMesh_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadPolygonMesh_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadPolygonMesh_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadPolygonMesh_get_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> get_Coordinates(This,Coordinates) ) 

#define IGcadPolygonMesh_put_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> put_Coordinates(This,Coordinates) ) 

#define IGcadPolygonMesh_get_MClose(This,bClose)	\
    ( (This)->lpVtbl -> get_MClose(This,bClose) ) 

#define IGcadPolygonMesh_put_MClose(This,bClose)	\
    ( (This)->lpVtbl -> put_MClose(This,bClose) ) 

#define IGcadPolygonMesh_get_NClose(This,bClose)	\
    ( (This)->lpVtbl -> get_NClose(This,bClose) ) 

#define IGcadPolygonMesh_put_NClose(This,bClose)	\
    ( (This)->lpVtbl -> put_NClose(This,bClose) ) 

#define IGcadPolygonMesh_get_MDensity(This,density)	\
    ( (This)->lpVtbl -> get_MDensity(This,density) ) 

#define IGcadPolygonMesh_put_MDensity(This,density)	\
    ( (This)->lpVtbl -> put_MDensity(This,density) ) 

#define IGcadPolygonMesh_get_NDensity(This,density)	\
    ( (This)->lpVtbl -> get_NDensity(This,density) ) 

#define IGcadPolygonMesh_put_NDensity(This,density)	\
    ( (This)->lpVtbl -> put_NDensity(This,density) ) 

#define IGcadPolygonMesh_get_MVertexCount(This,Count)	\
    ( (This)->lpVtbl -> get_MVertexCount(This,Count) ) 

#define IGcadPolygonMesh_get_NVertexCount(This,Count)	\
    ( (This)->lpVtbl -> get_NVertexCount(This,Count) ) 

#define IGcadPolygonMesh_get_Type(This,Type)	\
    ( (This)->lpVtbl -> get_Type(This,Type) ) 

#define IGcadPolygonMesh_put_Type(This,Type)	\
    ( (This)->lpVtbl -> put_Type(This,Type) ) 

#define IGcadPolygonMesh_AppendVertex(This,vertex)	\
    ( (This)->lpVtbl -> AppendVertex(This,vertex) ) 

#define IGcadPolygonMesh_Explode(This,pArrayObjs)	\
    ( (This)->lpVtbl -> Explode(This,pArrayObjs) ) 

#define IGcadPolygonMesh_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcadPolygonMesh_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPolygonMesh_INTERFACE_DEFINED__ */


#ifndef __IGcad3DPolyline_INTERFACE_DEFINED__
#define __IGcad3DPolyline_INTERFACE_DEFINED__

/* interface IGcad3DPolyline */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcad3DPolyline;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2D6B36AF-53ED-44A5-A97B-AD5C91872CF1")
    IGcad3DPolyline : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *Coordinates) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT Coordinates) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AppendVertex( 
            /* [in] */ VARIANT vertex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Explode( 
            /* [retval][out] */ VARIANT *pArrayObjs) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinate( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinate( 
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ Gc3DPolylineType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Type( 
            /* [in] */ Gc3DPolylineType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Closed( 
            /* [retval][out] */ VARIANT_BOOL *fClose) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Closed( 
            /* [in] */ VARIANT_BOOL fClose) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Length( 
            /* [retval][out] */ double *Length) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcad3DPolylineVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcad3DPolyline * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcad3DPolyline * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcad3DPolyline * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcad3DPolyline * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcad3DPolyline * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcad3DPolyline * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcad3DPolyline * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcad3DPolyline * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcad3DPolyline * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcad3DPolyline * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcad3DPolyline * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcad3DPolyline * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcad3DPolyline * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcad3DPolyline * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcad3DPolyline * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcad3DPolyline * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcad3DPolyline * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcad3DPolyline * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcad3DPolyline * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcad3DPolyline * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcad3DPolyline * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcad3DPolyline * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcad3DPolyline * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcad3DPolyline * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcad3DPolyline, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ VARIANT *Coordinates);
        
        DECLSPEC_XFGVIRT(IGcad3DPolyline, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT Coordinates);
        
        DECLSPEC_XFGVIRT(IGcad3DPolyline, AppendVertex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AppendVertex )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT vertex);
        
        DECLSPEC_XFGVIRT(IGcad3DPolyline, Explode)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Explode )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcad3DPolyline, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcad3DPolyline * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcad3DPolyline, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcad3DPolyline * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcad3DPolyline, get_Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ Gc3DPolylineType *Type);
        
        DECLSPEC_XFGVIRT(IGcad3DPolyline, put_Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Type )( 
            IGcad3DPolyline * This,
            /* [in] */ Gc3DPolylineType Type);
        
        DECLSPEC_XFGVIRT(IGcad3DPolyline, get_Closed)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Closed )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ VARIANT_BOOL *fClose);
        
        DECLSPEC_XFGVIRT(IGcad3DPolyline, put_Closed)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Closed )( 
            IGcad3DPolyline * This,
            /* [in] */ VARIANT_BOOL fClose);
        
        DECLSPEC_XFGVIRT(IGcad3DPolyline, get_Length)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
            IGcad3DPolyline * This,
            /* [retval][out] */ double *Length);
        
        END_INTERFACE
    } IGcad3DPolylineVtbl;

    interface IGcad3DPolyline
    {
        CONST_VTBL struct IGcad3DPolylineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcad3DPolyline_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcad3DPolyline_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcad3DPolyline_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcad3DPolyline_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcad3DPolyline_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcad3DPolyline_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcad3DPolyline_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcad3DPolyline_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcad3DPolyline_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcad3DPolyline_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcad3DPolyline_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcad3DPolyline_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcad3DPolyline_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcad3DPolyline_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcad3DPolyline_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcad3DPolyline_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcad3DPolyline_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcad3DPolyline_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcad3DPolyline_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcad3DPolyline_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcad3DPolyline_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcad3DPolyline_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcad3DPolyline_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcad3DPolyline_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcad3DPolyline_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcad3DPolyline_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcad3DPolyline_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcad3DPolyline_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcad3DPolyline_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcad3DPolyline_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcad3DPolyline_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcad3DPolyline_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcad3DPolyline_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcad3DPolyline_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcad3DPolyline_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcad3DPolyline_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcad3DPolyline_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcad3DPolyline_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcad3DPolyline_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcad3DPolyline_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcad3DPolyline_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcad3DPolyline_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcad3DPolyline_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcad3DPolyline_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcad3DPolyline_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcad3DPolyline_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcad3DPolyline_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcad3DPolyline_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcad3DPolyline_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcad3DPolyline_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcad3DPolyline_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcad3DPolyline_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcad3DPolyline_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcad3DPolyline_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcad3DPolyline_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcad3DPolyline_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcad3DPolyline_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcad3DPolyline_get_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> get_Coordinates(This,Coordinates) ) 

#define IGcad3DPolyline_put_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> put_Coordinates(This,Coordinates) ) 

#define IGcad3DPolyline_AppendVertex(This,vertex)	\
    ( (This)->lpVtbl -> AppendVertex(This,vertex) ) 

#define IGcad3DPolyline_Explode(This,pArrayObjs)	\
    ( (This)->lpVtbl -> Explode(This,pArrayObjs) ) 

#define IGcad3DPolyline_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcad3DPolyline_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#define IGcad3DPolyline_get_Type(This,Type)	\
    ( (This)->lpVtbl -> get_Type(This,Type) ) 

#define IGcad3DPolyline_put_Type(This,Type)	\
    ( (This)->lpVtbl -> put_Type(This,Type) ) 

#define IGcad3DPolyline_get_Closed(This,fClose)	\
    ( (This)->lpVtbl -> get_Closed(This,fClose) ) 

#define IGcad3DPolyline_put_Closed(This,fClose)	\
    ( (This)->lpVtbl -> put_Closed(This,fClose) ) 

#define IGcad3DPolyline_get_Length(This,Length)	\
    ( (This)->lpVtbl -> get_Length(This,Length) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcad3DPolyline_INTERFACE_DEFINED__ */


#ifndef __IGcadArc_INTERFACE_DEFINED__
#define __IGcadArc_INTERFACE_DEFINED__

/* interface IGcadArc */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadArc;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6D9FE1BB-5B25-41AA-A962-E55DE2B6210D")
    IGcadArc : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartPoint( 
            /* [retval][out] */ VARIANT *StartPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Center( 
            /* [retval][out] */ VARIANT *CenterPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Center( 
            /* [in] */ VARIANT CenterPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EndPoint( 
            /* [retval][out] */ VARIANT *EndPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Radius( 
            /* [retval][out] */ double *Radius) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Radius( 
            /* [in] */ double Radius) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartAngle( 
            /* [retval][out] */ GCAD_ANGLE *Angle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StartAngle( 
            /* [in] */ GCAD_ANGLE Angle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EndAngle( 
            /* [retval][out] */ GCAD_ANGLE *Angle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EndAngle( 
            /* [in] */ GCAD_ANGLE Angle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TotalAngle( 
            /* [retval][out] */ GCAD_ANGLE *TotalAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArcLength( 
            /* [retval][out] */ GCAD_DISTANCE *ArcLength) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Offset( 
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Area( 
            /* [retval][out] */ double *Area) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadArcVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadArc * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadArc * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadArc * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadArc * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadArc * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadArc * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadArc * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadArc * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadArc * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadArc * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadArc * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadArc * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadArc * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadArc * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadArc * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadArc * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadArc * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadArc * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadArc * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadArc * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadArc * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadArc * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadArc * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadArc * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadArc * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadArc * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadArc * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadArc * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadArc * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadArc * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadArc * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadArc * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadArc * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadArc * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadArc * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadArc * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadArc * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadArc * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadArc * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadArc * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadArc * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadArc * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadArc * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadArc * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadArc * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadArc * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadArc * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadArc * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadArc * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadArc * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadArc * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadArc * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadArc * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadArc * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadArc * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadArc * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadArc * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadArc, get_StartPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartPoint )( 
            IGcadArc * This,
            /* [retval][out] */ VARIANT *StartPoint);
        
        DECLSPEC_XFGVIRT(IGcadArc, get_Center)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Center )( 
            IGcadArc * This,
            /* [retval][out] */ VARIANT *CenterPoint);
        
        DECLSPEC_XFGVIRT(IGcadArc, put_Center)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Center )( 
            IGcadArc * This,
            /* [in] */ VARIANT CenterPoint);
        
        DECLSPEC_XFGVIRT(IGcadArc, get_EndPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndPoint )( 
            IGcadArc * This,
            /* [retval][out] */ VARIANT *EndPoint);
        
        DECLSPEC_XFGVIRT(IGcadArc, get_Radius)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Radius )( 
            IGcadArc * This,
            /* [retval][out] */ double *Radius);
        
        DECLSPEC_XFGVIRT(IGcadArc, put_Radius)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Radius )( 
            IGcadArc * This,
            /* [in] */ double Radius);
        
        DECLSPEC_XFGVIRT(IGcadArc, get_StartAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartAngle )( 
            IGcadArc * This,
            /* [retval][out] */ GCAD_ANGLE *Angle);
        
        DECLSPEC_XFGVIRT(IGcadArc, put_StartAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartAngle )( 
            IGcadArc * This,
            /* [in] */ GCAD_ANGLE Angle);
        
        DECLSPEC_XFGVIRT(IGcadArc, get_EndAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndAngle )( 
            IGcadArc * This,
            /* [retval][out] */ GCAD_ANGLE *Angle);
        
        DECLSPEC_XFGVIRT(IGcadArc, put_EndAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EndAngle )( 
            IGcadArc * This,
            /* [in] */ GCAD_ANGLE Angle);
        
        DECLSPEC_XFGVIRT(IGcadArc, get_TotalAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TotalAngle )( 
            IGcadArc * This,
            /* [retval][out] */ GCAD_ANGLE *TotalAngle);
        
        DECLSPEC_XFGVIRT(IGcadArc, get_ArcLength)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArcLength )( 
            IGcadArc * This,
            /* [retval][out] */ GCAD_DISTANCE *ArcLength);
        
        DECLSPEC_XFGVIRT(IGcadArc, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadArc * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadArc, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadArc * This,
            /* [in] */ double Thickness);
        
        DECLSPEC_XFGVIRT(IGcadArc, Offset)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Offset )( 
            IGcadArc * This,
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves);
        
        DECLSPEC_XFGVIRT(IGcadArc, get_Area)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Area )( 
            IGcadArc * This,
            /* [retval][out] */ double *Area);
        
        DECLSPEC_XFGVIRT(IGcadArc, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadArc * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadArc, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadArc * This,
            /* [in] */ VARIANT Normal);
        
        END_INTERFACE
    } IGcadArcVtbl;

    interface IGcadArc
    {
        CONST_VTBL struct IGcadArcVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadArc_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadArc_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadArc_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadArc_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadArc_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadArc_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadArc_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadArc_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadArc_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadArc_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadArc_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadArc_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadArc_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadArc_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadArc_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadArc_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadArc_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadArc_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadArc_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadArc_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadArc_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadArc_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadArc_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadArc_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadArc_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadArc_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadArc_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadArc_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadArc_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadArc_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadArc_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadArc_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadArc_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadArc_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadArc_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadArc_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadArc_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadArc_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadArc_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadArc_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadArc_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadArc_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadArc_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadArc_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadArc_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadArc_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadArc_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadArc_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadArc_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadArc_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadArc_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadArc_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadArc_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadArc_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadArc_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadArc_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadArc_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadArc_get_StartPoint(This,StartPoint)	\
    ( (This)->lpVtbl -> get_StartPoint(This,StartPoint) ) 

#define IGcadArc_get_Center(This,CenterPoint)	\
    ( (This)->lpVtbl -> get_Center(This,CenterPoint) ) 

#define IGcadArc_put_Center(This,CenterPoint)	\
    ( (This)->lpVtbl -> put_Center(This,CenterPoint) ) 

#define IGcadArc_get_EndPoint(This,EndPoint)	\
    ( (This)->lpVtbl -> get_EndPoint(This,EndPoint) ) 

#define IGcadArc_get_Radius(This,Radius)	\
    ( (This)->lpVtbl -> get_Radius(This,Radius) ) 

#define IGcadArc_put_Radius(This,Radius)	\
    ( (This)->lpVtbl -> put_Radius(This,Radius) ) 

#define IGcadArc_get_StartAngle(This,Angle)	\
    ( (This)->lpVtbl -> get_StartAngle(This,Angle) ) 

#define IGcadArc_put_StartAngle(This,Angle)	\
    ( (This)->lpVtbl -> put_StartAngle(This,Angle) ) 

#define IGcadArc_get_EndAngle(This,Angle)	\
    ( (This)->lpVtbl -> get_EndAngle(This,Angle) ) 

#define IGcadArc_put_EndAngle(This,Angle)	\
    ( (This)->lpVtbl -> put_EndAngle(This,Angle) ) 

#define IGcadArc_get_TotalAngle(This,TotalAngle)	\
    ( (This)->lpVtbl -> get_TotalAngle(This,TotalAngle) ) 

#define IGcadArc_get_ArcLength(This,ArcLength)	\
    ( (This)->lpVtbl -> get_ArcLength(This,ArcLength) ) 

#define IGcadArc_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadArc_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#define IGcadArc_Offset(This,Distance,pOffsetCurves)	\
    ( (This)->lpVtbl -> Offset(This,Distance,pOffsetCurves) ) 

#define IGcadArc_get_Area(This,Area)	\
    ( (This)->lpVtbl -> get_Area(This,Area) ) 

#define IGcadArc_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadArc_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadArc_INTERFACE_DEFINED__ */


#ifndef __IGcadAttribute_INTERFACE_DEFINED__
#define __IGcadAttribute_INTERFACE_DEFINED__

/* interface IGcadAttribute */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadAttribute;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DB4711D4-33D9-408F-9E34-93A7F91248F2")
    IGcadAttribute : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FieldLength( 
            /* [retval][out] */ long *fieldLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FieldLength( 
            /* [in] */ long fieldLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TagString( 
            /* [retval][out] */ BSTR *Tag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TagString( 
            /* [in] */ BSTR Tag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PromptString( 
            /* [retval][out] */ BSTR *bstrPrompt) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PromptString( 
            /* [in] */ BSTR bstrPrompt) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextString( 
            /* [retval][out] */ BSTR *bstrText) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextString( 
            /* [in] */ BSTR bstrText) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleName( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StyleName( 
            /* [in] */ BSTR Name) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Alignment( 
            /* [retval][out] */ GcAlignment *align) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Alignment( 
            /* [in] */ GcAlignment align) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalAlignment( 
            /* [retval][out] */ GcHorizontalAlignment *horizAlign) = 0;
        
        virtual /* [helpstring][hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_HorizontalAlignment( 
            /* [in] */ GcHorizontalAlignment horizAlign) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_VerticalAlignment( 
            /* [retval][out] */ GcVerticalAlignment *vertiAlign) = 0;
        
        virtual /* [helpstring][hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_VerticalAlignment( 
            /* [in] */ GcVerticalAlignment vertiAlign) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *scalFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor( 
            /* [in] */ GCAD_NOUNITS scalFactor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObliqueAngle( 
            /* [retval][out] */ GCAD_ANGLE *obliAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ObliqueAngle( 
            /* [in] */ GCAD_ANGLE obliAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextAlignmentPoint( 
            /* [retval][out] */ VARIANT *alignPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextAlignmentPoint( 
            /* [in] */ VARIANT alignPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsertionPoint( 
            /* [retval][out] */ VARIANT *insPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_InsertionPoint( 
            /* [in] */ VARIANT insPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextGenerationFlag( 
            /* [retval][out] */ long *textGenFlag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextGenerationFlag( 
            /* [in] */ long textGenFlag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Mode( 
            /* [retval][out] */ long *Mode) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Mode( 
            /* [in] */ long Mode) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UpsideDown( 
            /* [retval][out] */ VARIANT_BOOL *bUpsideDown) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UpsideDown( 
            /* [in] */ VARIANT_BOOL bUpsideDown) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Backward( 
            /* [retval][out] */ VARIANT_BOOL *bBackward) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Backward( 
            /* [in] */ VARIANT_BOOL bBackward) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Invisible( 
            /* [retval][out] */ VARIANT_BOOL *bInvisible) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Invisible( 
            /* [in] */ VARIANT_BOOL bInvisible) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Constant( 
            /* [retval][out] */ VARIANT_BOOL *bConstant) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Constant( 
            /* [in] */ VARIANT_BOOL bConstant) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Verify( 
            /* [retval][out] */ VARIANT_BOOL *bVerify) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Verify( 
            /* [in] */ VARIANT_BOOL bVerify) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Preset( 
            /* [retval][out] */ VARIANT_BOOL *bPreset) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Preset( 
            /* [in] */ VARIANT_BOOL bPreset) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LockPosition( 
            /* [retval][out] */ VARIANT_BOOL *bLockPosition) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LockPosition( 
            /* [in] */ VARIANT_BOOL bLockPosition) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MTextAttribute( 
            /* [retval][out] */ VARIANT_BOOL *bMTextAttribute) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MTextAttribute( 
            /* [in] */ VARIANT_BOOL bMTextAttribute) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MTextAttributeContent( 
            /* [retval][out] */ BSTR *content) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MTextAttributeContent( 
            /* [in] */ BSTR content) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UpdateMTextAttribute( void) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MTextBoundaryWidth( 
            /* [retval][out] */ double *boundaryWidth) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MTextBoundaryWidth( 
            double boundaryWidth) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MTextDrawingDirection( 
            /* [retval][out] */ GcDrawingDirection *drawDir) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MTextDrawingDirection( 
            /* [in] */ GcDrawingDirection drawDir) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadAttributeVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadAttribute * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadAttribute * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadAttribute * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadAttribute * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadAttribute * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadAttribute * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadAttribute * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadAttribute * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadAttribute * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadAttribute * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadAttribute * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadAttribute * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadAttribute * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadAttribute * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadAttribute * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadAttribute * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadAttribute * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadAttribute * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadAttribute * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadAttribute * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadAttribute * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadAttribute * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadAttribute * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadAttribute * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadAttribute * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadAttribute * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadAttribute * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadAttribute * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadAttribute * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadAttribute * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadAttribute * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadAttribute * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadAttribute * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadAttribute * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadAttribute * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadAttribute * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadAttribute * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_FieldLength)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FieldLength )( 
            IGcadAttribute * This,
            /* [retval][out] */ long *fieldLen);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_FieldLength)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FieldLength )( 
            IGcadAttribute * This,
            /* [in] */ long fieldLen);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_TagString)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TagString )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *Tag);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_TagString)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TagString )( 
            IGcadAttribute * This,
            /* [in] */ BSTR Tag);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_PromptString)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PromptString )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *bstrPrompt);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_PromptString)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PromptString )( 
            IGcadAttribute * This,
            /* [in] */ BSTR bstrPrompt);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_TextString)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextString )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_TextString)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextString )( 
            IGcadAttribute * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadAttribute * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_Alignment)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Alignment )( 
            IGcadAttribute * This,
            /* [retval][out] */ GcAlignment *align);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_Alignment)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Alignment )( 
            IGcadAttribute * This,
            /* [in] */ GcAlignment align);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_HorizontalAlignment)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalAlignment )( 
            IGcadAttribute * This,
            /* [retval][out] */ GcHorizontalAlignment *horizAlign);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_HorizontalAlignment)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HorizontalAlignment )( 
            IGcadAttribute * This,
            /* [in] */ GcHorizontalAlignment horizAlign);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_VerticalAlignment)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalAlignment )( 
            IGcadAttribute * This,
            /* [retval][out] */ GcVerticalAlignment *vertiAlign);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_VerticalAlignment)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalAlignment )( 
            IGcadAttribute * This,
            /* [in] */ GcVerticalAlignment vertiAlign);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadAttribute * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadAttribute * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadAttribute * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadAttribute * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadAttribute * This,
            /* [retval][out] */ GCAD_NOUNITS *scalFactor);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadAttribute * This,
            /* [in] */ GCAD_NOUNITS scalFactor);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_ObliqueAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObliqueAngle )( 
            IGcadAttribute * This,
            /* [retval][out] */ GCAD_ANGLE *obliAngle);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_ObliqueAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ObliqueAngle )( 
            IGcadAttribute * This,
            /* [in] */ GCAD_ANGLE obliAngle);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_TextAlignmentPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextAlignmentPoint )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT *alignPoint);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_TextAlignmentPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextAlignmentPoint )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT alignPoint);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_TextGenerationFlag)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGenerationFlag )( 
            IGcadAttribute * This,
            /* [retval][out] */ long *textGenFlag);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_TextGenerationFlag)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGenerationFlag )( 
            IGcadAttribute * This,
            /* [in] */ long textGenFlag);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadAttribute * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadAttribute * This,
            /* [in] */ double Thickness);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_Mode)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Mode )( 
            IGcadAttribute * This,
            /* [retval][out] */ long *Mode);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_Mode)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Mode )( 
            IGcadAttribute * This,
            /* [in] */ long Mode);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_UpsideDown)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UpsideDown )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT_BOOL *bUpsideDown);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_UpsideDown)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UpsideDown )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT_BOOL bUpsideDown);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_Backward)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Backward )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT_BOOL *bBackward);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_Backward)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Backward )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT_BOOL bBackward);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_Invisible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Invisible )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT_BOOL *bInvisible);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_Invisible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Invisible )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT_BOOL bInvisible);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_Constant)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Constant )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT_BOOL *bConstant);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_Constant)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Constant )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT_BOOL bConstant);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_Verify)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Verify )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT_BOOL *bVerify);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_Verify)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Verify )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT_BOOL bVerify);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_Preset)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Preset )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT_BOOL *bPreset);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_Preset)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Preset )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT_BOOL bPreset);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_LockPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LockPosition )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT_BOOL *bLockPosition);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_LockPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LockPosition )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT_BOOL bLockPosition);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_MTextAttribute)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MTextAttribute )( 
            IGcadAttribute * This,
            /* [retval][out] */ VARIANT_BOOL *bMTextAttribute);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_MTextAttribute)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MTextAttribute )( 
            IGcadAttribute * This,
            /* [in] */ VARIANT_BOOL bMTextAttribute);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_MTextAttributeContent)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MTextAttributeContent )( 
            IGcadAttribute * This,
            /* [retval][out] */ BSTR *content);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_MTextAttributeContent)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MTextAttributeContent )( 
            IGcadAttribute * This,
            /* [in] */ BSTR content);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, UpdateMTextAttribute)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UpdateMTextAttribute )( 
            IGcadAttribute * This);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_MTextBoundaryWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MTextBoundaryWidth )( 
            IGcadAttribute * This,
            /* [retval][out] */ double *boundaryWidth);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_MTextBoundaryWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MTextBoundaryWidth )( 
            IGcadAttribute * This,
            double boundaryWidth);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, get_MTextDrawingDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MTextDrawingDirection )( 
            IGcadAttribute * This,
            /* [retval][out] */ GcDrawingDirection *drawDir);
        
        DECLSPEC_XFGVIRT(IGcadAttribute, put_MTextDrawingDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MTextDrawingDirection )( 
            IGcadAttribute * This,
            /* [in] */ GcDrawingDirection drawDir);
        
        END_INTERFACE
    } IGcadAttributeVtbl;

    interface IGcadAttribute
    {
        CONST_VTBL struct IGcadAttributeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadAttribute_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadAttribute_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadAttribute_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadAttribute_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadAttribute_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadAttribute_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadAttribute_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadAttribute_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadAttribute_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadAttribute_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadAttribute_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadAttribute_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadAttribute_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadAttribute_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadAttribute_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadAttribute_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadAttribute_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadAttribute_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadAttribute_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadAttribute_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadAttribute_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadAttribute_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadAttribute_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadAttribute_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadAttribute_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadAttribute_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadAttribute_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadAttribute_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadAttribute_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadAttribute_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadAttribute_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadAttribute_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadAttribute_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadAttribute_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadAttribute_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadAttribute_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadAttribute_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadAttribute_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadAttribute_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadAttribute_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadAttribute_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadAttribute_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadAttribute_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadAttribute_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadAttribute_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadAttribute_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadAttribute_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadAttribute_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadAttribute_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadAttribute_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadAttribute_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadAttribute_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadAttribute_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadAttribute_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadAttribute_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadAttribute_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadAttribute_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadAttribute_get_FieldLength(This,fieldLen)	\
    ( (This)->lpVtbl -> get_FieldLength(This,fieldLen) ) 

#define IGcadAttribute_put_FieldLength(This,fieldLen)	\
    ( (This)->lpVtbl -> put_FieldLength(This,fieldLen) ) 

#define IGcadAttribute_get_TagString(This,Tag)	\
    ( (This)->lpVtbl -> get_TagString(This,Tag) ) 

#define IGcadAttribute_put_TagString(This,Tag)	\
    ( (This)->lpVtbl -> put_TagString(This,Tag) ) 

#define IGcadAttribute_get_PromptString(This,bstrPrompt)	\
    ( (This)->lpVtbl -> get_PromptString(This,bstrPrompt) ) 

#define IGcadAttribute_put_PromptString(This,bstrPrompt)	\
    ( (This)->lpVtbl -> put_PromptString(This,bstrPrompt) ) 

#define IGcadAttribute_get_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextString(This,bstrText) ) 

#define IGcadAttribute_put_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextString(This,bstrText) ) 

#define IGcadAttribute_get_StyleName(This,Name)	\
    ( (This)->lpVtbl -> get_StyleName(This,Name) ) 

#define IGcadAttribute_put_StyleName(This,Name)	\
    ( (This)->lpVtbl -> put_StyleName(This,Name) ) 

#define IGcadAttribute_get_Alignment(This,align)	\
    ( (This)->lpVtbl -> get_Alignment(This,align) ) 

#define IGcadAttribute_put_Alignment(This,align)	\
    ( (This)->lpVtbl -> put_Alignment(This,align) ) 

#define IGcadAttribute_get_HorizontalAlignment(This,horizAlign)	\
    ( (This)->lpVtbl -> get_HorizontalAlignment(This,horizAlign) ) 

#define IGcadAttribute_put_HorizontalAlignment(This,horizAlign)	\
    ( (This)->lpVtbl -> put_HorizontalAlignment(This,horizAlign) ) 

#define IGcadAttribute_get_VerticalAlignment(This,vertiAlign)	\
    ( (This)->lpVtbl -> get_VerticalAlignment(This,vertiAlign) ) 

#define IGcadAttribute_put_VerticalAlignment(This,vertiAlign)	\
    ( (This)->lpVtbl -> put_VerticalAlignment(This,vertiAlign) ) 

#define IGcadAttribute_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadAttribute_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadAttribute_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadAttribute_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadAttribute_get_ScaleFactor(This,scalFactor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,scalFactor) ) 

#define IGcadAttribute_put_ScaleFactor(This,scalFactor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,scalFactor) ) 

#define IGcadAttribute_get_ObliqueAngle(This,obliAngle)	\
    ( (This)->lpVtbl -> get_ObliqueAngle(This,obliAngle) ) 

#define IGcadAttribute_put_ObliqueAngle(This,obliAngle)	\
    ( (This)->lpVtbl -> put_ObliqueAngle(This,obliAngle) ) 

#define IGcadAttribute_get_TextAlignmentPoint(This,alignPoint)	\
    ( (This)->lpVtbl -> get_TextAlignmentPoint(This,alignPoint) ) 

#define IGcadAttribute_put_TextAlignmentPoint(This,alignPoint)	\
    ( (This)->lpVtbl -> put_TextAlignmentPoint(This,alignPoint) ) 

#define IGcadAttribute_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadAttribute_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadAttribute_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadAttribute_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadAttribute_get_TextGenerationFlag(This,textGenFlag)	\
    ( (This)->lpVtbl -> get_TextGenerationFlag(This,textGenFlag) ) 

#define IGcadAttribute_put_TextGenerationFlag(This,textGenFlag)	\
    ( (This)->lpVtbl -> put_TextGenerationFlag(This,textGenFlag) ) 

#define IGcadAttribute_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadAttribute_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#define IGcadAttribute_get_Mode(This,Mode)	\
    ( (This)->lpVtbl -> get_Mode(This,Mode) ) 

#define IGcadAttribute_put_Mode(This,Mode)	\
    ( (This)->lpVtbl -> put_Mode(This,Mode) ) 

#define IGcadAttribute_get_UpsideDown(This,bUpsideDown)	\
    ( (This)->lpVtbl -> get_UpsideDown(This,bUpsideDown) ) 

#define IGcadAttribute_put_UpsideDown(This,bUpsideDown)	\
    ( (This)->lpVtbl -> put_UpsideDown(This,bUpsideDown) ) 

#define IGcadAttribute_get_Backward(This,bBackward)	\
    ( (This)->lpVtbl -> get_Backward(This,bBackward) ) 

#define IGcadAttribute_put_Backward(This,bBackward)	\
    ( (This)->lpVtbl -> put_Backward(This,bBackward) ) 

#define IGcadAttribute_get_Invisible(This,bInvisible)	\
    ( (This)->lpVtbl -> get_Invisible(This,bInvisible) ) 

#define IGcadAttribute_put_Invisible(This,bInvisible)	\
    ( (This)->lpVtbl -> put_Invisible(This,bInvisible) ) 

#define IGcadAttribute_get_Constant(This,bConstant)	\
    ( (This)->lpVtbl -> get_Constant(This,bConstant) ) 

#define IGcadAttribute_put_Constant(This,bConstant)	\
    ( (This)->lpVtbl -> put_Constant(This,bConstant) ) 

#define IGcadAttribute_get_Verify(This,bVerify)	\
    ( (This)->lpVtbl -> get_Verify(This,bVerify) ) 

#define IGcadAttribute_put_Verify(This,bVerify)	\
    ( (This)->lpVtbl -> put_Verify(This,bVerify) ) 

#define IGcadAttribute_get_Preset(This,bPreset)	\
    ( (This)->lpVtbl -> get_Preset(This,bPreset) ) 

#define IGcadAttribute_put_Preset(This,bPreset)	\
    ( (This)->lpVtbl -> put_Preset(This,bPreset) ) 

#define IGcadAttribute_get_LockPosition(This,bLockPosition)	\
    ( (This)->lpVtbl -> get_LockPosition(This,bLockPosition) ) 

#define IGcadAttribute_put_LockPosition(This,bLockPosition)	\
    ( (This)->lpVtbl -> put_LockPosition(This,bLockPosition) ) 

#define IGcadAttribute_get_MTextAttribute(This,bMTextAttribute)	\
    ( (This)->lpVtbl -> get_MTextAttribute(This,bMTextAttribute) ) 

#define IGcadAttribute_put_MTextAttribute(This,bMTextAttribute)	\
    ( (This)->lpVtbl -> put_MTextAttribute(This,bMTextAttribute) ) 

#define IGcadAttribute_get_MTextAttributeContent(This,content)	\
    ( (This)->lpVtbl -> get_MTextAttributeContent(This,content) ) 

#define IGcadAttribute_put_MTextAttributeContent(This,content)	\
    ( (This)->lpVtbl -> put_MTextAttributeContent(This,content) ) 

#define IGcadAttribute_UpdateMTextAttribute(This)	\
    ( (This)->lpVtbl -> UpdateMTextAttribute(This) ) 

#define IGcadAttribute_get_MTextBoundaryWidth(This,boundaryWidth)	\
    ( (This)->lpVtbl -> get_MTextBoundaryWidth(This,boundaryWidth) ) 

#define IGcadAttribute_put_MTextBoundaryWidth(This,boundaryWidth)	\
    ( (This)->lpVtbl -> put_MTextBoundaryWidth(This,boundaryWidth) ) 

#define IGcadAttribute_get_MTextDrawingDirection(This,drawDir)	\
    ( (This)->lpVtbl -> get_MTextDrawingDirection(This,drawDir) ) 

#define IGcadAttribute_put_MTextDrawingDirection(This,drawDir)	\
    ( (This)->lpVtbl -> put_MTextDrawingDirection(This,drawDir) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadAttribute_INTERFACE_DEFINED__ */


#ifndef __IGcad3DSolid_INTERFACE_DEFINED__
#define __IGcad3DSolid_INTERFACE_DEFINED__

/* interface IGcad3DSolid */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcad3DSolid;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("93102923-D2AD-4429-86B3-A09D589BF38F")
    IGcad3DSolid : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Centroid( 
            /* [retval][out] */ VARIANT *Centroid) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MomentOfInertia( 
            /* [retval][out] */ VARIANT *momentInertia) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PrincipalDirections( 
            /* [retval][out] */ VARIANT *prinDir) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PrincipalMoments( 
            /* [retval][out] */ VARIANT *prinMoments) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ProductOfInertia( 
            /* [retval][out] */ VARIANT *prodInertia) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RadiiOfGyration( 
            /* [retval][out] */ VARIANT *radiiGyration) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Volume( 
            /* [retval][out] */ double *Volume) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Boolean( 
            /* [in] */ GcBooleanType Operation,
            /* [in] */ IGcad3DSolid *SolidObject) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CheckInterference( 
            /* [in] */ IGcad3DSolid *Object,
            /* [in] */ VARIANT_BOOL CreateInterferenceSolid,
            /* [retval][out] */ IGcad3DSolid **pIntSolid) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SectionSolid( 
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IGcadRegion **pRegion) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SliceSolid( 
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [in] */ VARIANT_BOOL Negative,
            /* [retval][out] */ IGcad3DSolid **pNegSideSolid) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SolidType( 
            /* [retval][out] */ BSTR *SolidType) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Position( 
            /* [retval][out] */ VARIANT *Position) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Position( 
            /* [in] */ VARIANT Position) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_History( 
            /* [retval][out] */ VARIANT_BOOL *bHistory) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_History( 
            /* [in] */ VARIANT_BOOL bHistory) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ShowHistory( 
            /* [retval][out] */ VARIANT_BOOL *Position) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ShowHistory( 
            /* [in] */ VARIANT_BOOL Position) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcad3DSolidVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcad3DSolid * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcad3DSolid * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcad3DSolid * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcad3DSolid * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcad3DSolid * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcad3DSolid * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcad3DSolid * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcad3DSolid * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcad3DSolid * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcad3DSolid * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcad3DSolid * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcad3DSolid * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcad3DSolid * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcad3DSolid * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcad3DSolid * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcad3DSolid * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcad3DSolid * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcad3DSolid * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcad3DSolid * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcad3DSolid * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcad3DSolid * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcad3DSolid * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcad3DSolid * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcad3DSolid * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcad3DSolid * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcad3DSolid * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcad3DSolid * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcad3DSolid * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcad3DSolid * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcad3DSolid * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcad3DSolid * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcad3DSolid * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcad3DSolid * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcad3DSolid * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcad3DSolid * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcad3DSolid * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcad3DSolid * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcad3DSolid * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcad3DSolid * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcad3DSolid * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcad3DSolid * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcad3DSolid * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcad3DSolid * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcad3DSolid * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcad3DSolid * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcad3DSolid * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcad3DSolid * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, get_Centroid)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Centroid )( 
            IGcad3DSolid * This,
            /* [retval][out] */ VARIANT *Centroid);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, get_MomentOfInertia)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MomentOfInertia )( 
            IGcad3DSolid * This,
            /* [retval][out] */ VARIANT *momentInertia);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, get_PrincipalDirections)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrincipalDirections )( 
            IGcad3DSolid * This,
            /* [retval][out] */ VARIANT *prinDir);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, get_PrincipalMoments)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrincipalMoments )( 
            IGcad3DSolid * This,
            /* [retval][out] */ VARIANT *prinMoments);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, get_ProductOfInertia)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ProductOfInertia )( 
            IGcad3DSolid * This,
            /* [retval][out] */ VARIANT *prodInertia);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, get_RadiiOfGyration)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RadiiOfGyration )( 
            IGcad3DSolid * This,
            /* [retval][out] */ VARIANT *radiiGyration);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, get_Volume)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Volume )( 
            IGcad3DSolid * This,
            /* [retval][out] */ double *Volume);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, Boolean)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Boolean )( 
            IGcad3DSolid * This,
            /* [in] */ GcBooleanType Operation,
            /* [in] */ IGcad3DSolid *SolidObject);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, CheckInterference)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CheckInterference )( 
            IGcad3DSolid * This,
            /* [in] */ IGcad3DSolid *Object,
            /* [in] */ VARIANT_BOOL CreateInterferenceSolid,
            /* [retval][out] */ IGcad3DSolid **pIntSolid);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, SectionSolid)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SectionSolid )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IGcadRegion **pRegion);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, SliceSolid)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SliceSolid )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [in] */ VARIANT_BOOL Negative,
            /* [retval][out] */ IGcad3DSolid **pNegSideSolid);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, get_SolidType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SolidType )( 
            IGcad3DSolid * This,
            /* [retval][out] */ BSTR *SolidType);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, get_Position)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Position )( 
            IGcad3DSolid * This,
            /* [retval][out] */ VARIANT *Position);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, put_Position)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Position )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT Position);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, get_History)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_History )( 
            IGcad3DSolid * This,
            /* [retval][out] */ VARIANT_BOOL *bHistory);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, put_History)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_History )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT_BOOL bHistory);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, get_ShowHistory)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowHistory )( 
            IGcad3DSolid * This,
            /* [retval][out] */ VARIANT_BOOL *Position);
        
        DECLSPEC_XFGVIRT(IGcad3DSolid, put_ShowHistory)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowHistory )( 
            IGcad3DSolid * This,
            /* [in] */ VARIANT_BOOL Position);
        
        END_INTERFACE
    } IGcad3DSolidVtbl;

    interface IGcad3DSolid
    {
        CONST_VTBL struct IGcad3DSolidVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcad3DSolid_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcad3DSolid_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcad3DSolid_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcad3DSolid_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcad3DSolid_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcad3DSolid_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcad3DSolid_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcad3DSolid_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcad3DSolid_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcad3DSolid_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcad3DSolid_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcad3DSolid_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcad3DSolid_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcad3DSolid_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcad3DSolid_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcad3DSolid_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcad3DSolid_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcad3DSolid_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcad3DSolid_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcad3DSolid_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcad3DSolid_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcad3DSolid_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcad3DSolid_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcad3DSolid_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcad3DSolid_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcad3DSolid_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcad3DSolid_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcad3DSolid_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcad3DSolid_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcad3DSolid_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcad3DSolid_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcad3DSolid_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcad3DSolid_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcad3DSolid_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcad3DSolid_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcad3DSolid_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcad3DSolid_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcad3DSolid_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcad3DSolid_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcad3DSolid_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcad3DSolid_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcad3DSolid_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcad3DSolid_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcad3DSolid_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcad3DSolid_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcad3DSolid_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcad3DSolid_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcad3DSolid_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcad3DSolid_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcad3DSolid_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcad3DSolid_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcad3DSolid_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcad3DSolid_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcad3DSolid_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcad3DSolid_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcad3DSolid_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcad3DSolid_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcad3DSolid_get_Centroid(This,Centroid)	\
    ( (This)->lpVtbl -> get_Centroid(This,Centroid) ) 

#define IGcad3DSolid_get_MomentOfInertia(This,momentInertia)	\
    ( (This)->lpVtbl -> get_MomentOfInertia(This,momentInertia) ) 

#define IGcad3DSolid_get_PrincipalDirections(This,prinDir)	\
    ( (This)->lpVtbl -> get_PrincipalDirections(This,prinDir) ) 

#define IGcad3DSolid_get_PrincipalMoments(This,prinMoments)	\
    ( (This)->lpVtbl -> get_PrincipalMoments(This,prinMoments) ) 

#define IGcad3DSolid_get_ProductOfInertia(This,prodInertia)	\
    ( (This)->lpVtbl -> get_ProductOfInertia(This,prodInertia) ) 

#define IGcad3DSolid_get_RadiiOfGyration(This,radiiGyration)	\
    ( (This)->lpVtbl -> get_RadiiOfGyration(This,radiiGyration) ) 

#define IGcad3DSolid_get_Volume(This,Volume)	\
    ( (This)->lpVtbl -> get_Volume(This,Volume) ) 

#define IGcad3DSolid_Boolean(This,Operation,SolidObject)	\
    ( (This)->lpVtbl -> Boolean(This,Operation,SolidObject) ) 

#define IGcad3DSolid_CheckInterference(This,Object,CreateInterferenceSolid,pIntSolid)	\
    ( (This)->lpVtbl -> CheckInterference(This,Object,CreateInterferenceSolid,pIntSolid) ) 

#define IGcad3DSolid_SectionSolid(This,Point1,Point2,point3,pRegion)	\
    ( (This)->lpVtbl -> SectionSolid(This,Point1,Point2,point3,pRegion) ) 

#define IGcad3DSolid_SliceSolid(This,Point1,Point2,point3,Negative,pNegSideSolid)	\
    ( (This)->lpVtbl -> SliceSolid(This,Point1,Point2,point3,Negative,pNegSideSolid) ) 

#define IGcad3DSolid_get_SolidType(This,SolidType)	\
    ( (This)->lpVtbl -> get_SolidType(This,SolidType) ) 

#define IGcad3DSolid_get_Position(This,Position)	\
    ( (This)->lpVtbl -> get_Position(This,Position) ) 

#define IGcad3DSolid_put_Position(This,Position)	\
    ( (This)->lpVtbl -> put_Position(This,Position) ) 

#define IGcad3DSolid_get_History(This,bHistory)	\
    ( (This)->lpVtbl -> get_History(This,bHistory) ) 

#define IGcad3DSolid_put_History(This,bHistory)	\
    ( (This)->lpVtbl -> put_History(This,bHistory) ) 

#define IGcad3DSolid_get_ShowHistory(This,Position)	\
    ( (This)->lpVtbl -> get_ShowHistory(This,Position) ) 

#define IGcad3DSolid_put_ShowHistory(This,Position)	\
    ( (This)->lpVtbl -> put_ShowHistory(This,Position) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcad3DSolid_INTERFACE_DEFINED__ */


#ifndef __IGcadRegion_INTERFACE_DEFINED__
#define __IGcadRegion_INTERFACE_DEFINED__

/* interface IGcadRegion */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadRegion;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6B5D2248-E3ED-4807-8AFB-0CAA49BAF64A")
    IGcadRegion : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Area( 
            /* [retval][out] */ double *Area) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Centroid( 
            /* [retval][out] */ VARIANT *Centroid) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MomentOfInertia( 
            /* [retval][out] */ VARIANT *momentInertia) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Perimeter( 
            /* [retval][out] */ double *Perimeter) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PrincipalDirections( 
            /* [retval][out] */ VARIANT *prinDir) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PrincipalMoments( 
            /* [retval][out] */ VARIANT *prinMoments) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ProductOfInertia( 
            /* [retval][out] */ double *prodInertia) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RadiiOfGyration( 
            /* [retval][out] */ VARIANT *radiiGyration) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Boolean( 
            /* [in] */ GcBooleanType Operation,
            /* [in] */ IGcadRegion *Object) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Explode( 
            /* [retval][out] */ VARIANT *pArrayObjs) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadRegionVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadRegion * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadRegion * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadRegion * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadRegion * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadRegion * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadRegion * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadRegion * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadRegion * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadRegion * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadRegion * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadRegion * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadRegion * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadRegion * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadRegion * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadRegion * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadRegion * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadRegion * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadRegion * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadRegion * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadRegion * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadRegion * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadRegion * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadRegion * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadRegion * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadRegion * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadRegion * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadRegion * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadRegion * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadRegion * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadRegion * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadRegion * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadRegion * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadRegion * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadRegion * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadRegion * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadRegion * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadRegion * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadRegion * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadRegion * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadRegion * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadRegion * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadRegion * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadRegion * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadRegion * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadRegion * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadRegion * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadRegion * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadRegion * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadRegion * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadRegion * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadRegion * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadRegion * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadRegion * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadRegion * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadRegion * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadRegion * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadRegion * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadRegion, get_Area)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Area )( 
            IGcadRegion * This,
            /* [retval][out] */ double *Area);
        
        DECLSPEC_XFGVIRT(IGcadRegion, get_Centroid)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Centroid )( 
            IGcadRegion * This,
            /* [retval][out] */ VARIANT *Centroid);
        
        DECLSPEC_XFGVIRT(IGcadRegion, get_MomentOfInertia)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MomentOfInertia )( 
            IGcadRegion * This,
            /* [retval][out] */ VARIANT *momentInertia);
        
        DECLSPEC_XFGVIRT(IGcadRegion, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadRegion * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadRegion, get_Perimeter)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Perimeter )( 
            IGcadRegion * This,
            /* [retval][out] */ double *Perimeter);
        
        DECLSPEC_XFGVIRT(IGcadRegion, get_PrincipalDirections)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrincipalDirections )( 
            IGcadRegion * This,
            /* [retval][out] */ VARIANT *prinDir);
        
        DECLSPEC_XFGVIRT(IGcadRegion, get_PrincipalMoments)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrincipalMoments )( 
            IGcadRegion * This,
            /* [retval][out] */ VARIANT *prinMoments);
        
        DECLSPEC_XFGVIRT(IGcadRegion, get_ProductOfInertia)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ProductOfInertia )( 
            IGcadRegion * This,
            /* [retval][out] */ double *prodInertia);
        
        DECLSPEC_XFGVIRT(IGcadRegion, get_RadiiOfGyration)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RadiiOfGyration )( 
            IGcadRegion * This,
            /* [retval][out] */ VARIANT *radiiGyration);
        
        DECLSPEC_XFGVIRT(IGcadRegion, Boolean)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Boolean )( 
            IGcadRegion * This,
            /* [in] */ GcBooleanType Operation,
            /* [in] */ IGcadRegion *Object);
        
        DECLSPEC_XFGVIRT(IGcadRegion, Explode)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Explode )( 
            IGcadRegion * This,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        END_INTERFACE
    } IGcadRegionVtbl;

    interface IGcadRegion
    {
        CONST_VTBL struct IGcadRegionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadRegion_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadRegion_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadRegion_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadRegion_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadRegion_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadRegion_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadRegion_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadRegion_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadRegion_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadRegion_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadRegion_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadRegion_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadRegion_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadRegion_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadRegion_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadRegion_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadRegion_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadRegion_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadRegion_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadRegion_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadRegion_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadRegion_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadRegion_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadRegion_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadRegion_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadRegion_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadRegion_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadRegion_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadRegion_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadRegion_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadRegion_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadRegion_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadRegion_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadRegion_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadRegion_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadRegion_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadRegion_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadRegion_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadRegion_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadRegion_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadRegion_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadRegion_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadRegion_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadRegion_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadRegion_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadRegion_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadRegion_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadRegion_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadRegion_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadRegion_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadRegion_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadRegion_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadRegion_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadRegion_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadRegion_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadRegion_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadRegion_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadRegion_get_Area(This,Area)	\
    ( (This)->lpVtbl -> get_Area(This,Area) ) 

#define IGcadRegion_get_Centroid(This,Centroid)	\
    ( (This)->lpVtbl -> get_Centroid(This,Centroid) ) 

#define IGcadRegion_get_MomentOfInertia(This,momentInertia)	\
    ( (This)->lpVtbl -> get_MomentOfInertia(This,momentInertia) ) 

#define IGcadRegion_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadRegion_get_Perimeter(This,Perimeter)	\
    ( (This)->lpVtbl -> get_Perimeter(This,Perimeter) ) 

#define IGcadRegion_get_PrincipalDirections(This,prinDir)	\
    ( (This)->lpVtbl -> get_PrincipalDirections(This,prinDir) ) 

#define IGcadRegion_get_PrincipalMoments(This,prinMoments)	\
    ( (This)->lpVtbl -> get_PrincipalMoments(This,prinMoments) ) 

#define IGcadRegion_get_ProductOfInertia(This,prodInertia)	\
    ( (This)->lpVtbl -> get_ProductOfInertia(This,prodInertia) ) 

#define IGcadRegion_get_RadiiOfGyration(This,radiiGyration)	\
    ( (This)->lpVtbl -> get_RadiiOfGyration(This,radiiGyration) ) 

#define IGcadRegion_Boolean(This,Operation,Object)	\
    ( (This)->lpVtbl -> Boolean(This,Operation,Object) ) 

#define IGcadRegion_Explode(This,pArrayObjs)	\
    ( (This)->lpVtbl -> Explode(This,pArrayObjs) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadRegion_INTERFACE_DEFINED__ */


#ifndef __IGcadCircle_INTERFACE_DEFINED__
#define __IGcadCircle_INTERFACE_DEFINED__

/* interface IGcadCircle */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadCircle;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("70B267B4-5885-477C-BE74-F898EE7FE9EA")
    IGcadCircle : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Center( 
            /* [retval][out] */ VARIANT *CenterPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Center( 
            /* [in] */ VARIANT CenterPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Radius( 
            /* [retval][out] */ double *Radius) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Radius( 
            /* [in] */ double Radius) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Diameter( 
            /* [retval][out] */ double *Diameter) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Diameter( 
            /* [in] */ double Diameter) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Circumference( 
            /* [retval][out] */ double *Circumference) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Circumference( 
            /* [in] */ double Circumference) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Area( 
            /* [retval][out] */ double *Area) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Area( 
            /* [in] */ double Area) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Offset( 
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadCircleVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadCircle * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadCircle * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadCircle * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadCircle * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadCircle * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadCircle * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadCircle * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadCircle * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadCircle * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadCircle * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadCircle * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadCircle * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadCircle * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadCircle * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadCircle * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadCircle * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadCircle * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadCircle * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadCircle * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadCircle * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadCircle * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadCircle * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadCircle * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadCircle * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadCircle * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadCircle * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadCircle * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadCircle * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadCircle * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadCircle * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadCircle * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadCircle * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadCircle * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadCircle * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadCircle * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadCircle * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadCircle * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadCircle * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadCircle * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadCircle * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadCircle * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadCircle * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadCircle * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadCircle * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadCircle * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadCircle * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadCircle * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadCircle * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadCircle * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadCircle * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadCircle * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadCircle * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadCircle * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadCircle * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadCircle * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadCircle * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadCircle * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadCircle, get_Center)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Center )( 
            IGcadCircle * This,
            /* [retval][out] */ VARIANT *CenterPoint);
        
        DECLSPEC_XFGVIRT(IGcadCircle, put_Center)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Center )( 
            IGcadCircle * This,
            /* [in] */ VARIANT CenterPoint);
        
        DECLSPEC_XFGVIRT(IGcadCircle, get_Radius)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Radius )( 
            IGcadCircle * This,
            /* [retval][out] */ double *Radius);
        
        DECLSPEC_XFGVIRT(IGcadCircle, put_Radius)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Radius )( 
            IGcadCircle * This,
            /* [in] */ double Radius);
        
        DECLSPEC_XFGVIRT(IGcadCircle, get_Diameter)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Diameter )( 
            IGcadCircle * This,
            /* [retval][out] */ double *Diameter);
        
        DECLSPEC_XFGVIRT(IGcadCircle, put_Diameter)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Diameter )( 
            IGcadCircle * This,
            /* [in] */ double Diameter);
        
        DECLSPEC_XFGVIRT(IGcadCircle, get_Circumference)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Circumference )( 
            IGcadCircle * This,
            /* [retval][out] */ double *Circumference);
        
        DECLSPEC_XFGVIRT(IGcadCircle, put_Circumference)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Circumference )( 
            IGcadCircle * This,
            /* [in] */ double Circumference);
        
        DECLSPEC_XFGVIRT(IGcadCircle, get_Area)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Area )( 
            IGcadCircle * This,
            /* [retval][out] */ double *Area);
        
        DECLSPEC_XFGVIRT(IGcadCircle, put_Area)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Area )( 
            IGcadCircle * This,
            /* [in] */ double Area);
        
        DECLSPEC_XFGVIRT(IGcadCircle, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadCircle * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadCircle, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadCircle * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadCircle, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadCircle * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadCircle, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadCircle * This,
            /* [in] */ double Thickness);
        
        DECLSPEC_XFGVIRT(IGcadCircle, Offset)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Offset )( 
            IGcadCircle * This,
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves);
        
        END_INTERFACE
    } IGcadCircleVtbl;

    interface IGcadCircle
    {
        CONST_VTBL struct IGcadCircleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadCircle_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadCircle_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadCircle_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadCircle_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadCircle_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadCircle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadCircle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadCircle_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadCircle_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadCircle_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadCircle_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadCircle_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadCircle_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadCircle_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadCircle_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadCircle_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadCircle_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadCircle_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadCircle_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadCircle_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadCircle_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadCircle_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadCircle_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadCircle_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadCircle_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadCircle_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadCircle_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadCircle_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadCircle_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadCircle_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadCircle_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadCircle_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadCircle_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadCircle_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadCircle_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadCircle_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadCircle_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadCircle_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadCircle_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadCircle_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadCircle_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadCircle_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadCircle_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadCircle_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadCircle_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadCircle_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadCircle_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadCircle_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadCircle_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadCircle_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadCircle_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadCircle_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadCircle_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadCircle_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadCircle_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadCircle_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadCircle_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadCircle_get_Center(This,CenterPoint)	\
    ( (This)->lpVtbl -> get_Center(This,CenterPoint) ) 

#define IGcadCircle_put_Center(This,CenterPoint)	\
    ( (This)->lpVtbl -> put_Center(This,CenterPoint) ) 

#define IGcadCircle_get_Radius(This,Radius)	\
    ( (This)->lpVtbl -> get_Radius(This,Radius) ) 

#define IGcadCircle_put_Radius(This,Radius)	\
    ( (This)->lpVtbl -> put_Radius(This,Radius) ) 

#define IGcadCircle_get_Diameter(This,Diameter)	\
    ( (This)->lpVtbl -> get_Diameter(This,Diameter) ) 

#define IGcadCircle_put_Diameter(This,Diameter)	\
    ( (This)->lpVtbl -> put_Diameter(This,Diameter) ) 

#define IGcadCircle_get_Circumference(This,Circumference)	\
    ( (This)->lpVtbl -> get_Circumference(This,Circumference) ) 

#define IGcadCircle_put_Circumference(This,Circumference)	\
    ( (This)->lpVtbl -> put_Circumference(This,Circumference) ) 

#define IGcadCircle_get_Area(This,Area)	\
    ( (This)->lpVtbl -> get_Area(This,Area) ) 

#define IGcadCircle_put_Area(This,Area)	\
    ( (This)->lpVtbl -> put_Area(This,Area) ) 

#define IGcadCircle_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadCircle_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadCircle_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadCircle_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#define IGcadCircle_Offset(This,Distance,pOffsetCurves)	\
    ( (This)->lpVtbl -> Offset(This,Distance,pOffsetCurves) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadCircle_INTERFACE_DEFINED__ */


#ifndef __IGcadDimension_INTERFACE_DEFINED__
#define __IGcadDimension_INTERFACE_DEFINED__

/* interface IGcadDimension */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDimension;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6330AC5A-B41E-4E0F-A133-9AA84C9A4E94")
    IGcadDimension : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextPosition( 
            /* [retval][out] */ VARIANT *textPos) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextPosition( 
            /* [in] */ VARIANT textPos) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextRotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextRotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextOverride( 
            /* [retval][out] */ BSTR *bstrText) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextOverride( 
            /* [in] */ BSTR bstrText) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StyleName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextColor( 
            /* [retval][out] */ GCAD_COLOR *color) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextColor( 
            /* [in] */ GCAD_COLOR color) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DecimalSeparator( 
            /* [retval][out] */ BSTR *character) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DecimalSeparator( 
            /* [in] */ BSTR character) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextGap( 
            /* [retval][out] */ double *Offset) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextGap( 
            /* [in] */ double Offset) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextPrefix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextPrefix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextSuffix( 
            /* [retval][out] */ BSTR *suffix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextSuffix( 
            /* [in] */ BSTR suffix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor( 
            /* [in] */ GCAD_NOUNITS factor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VerticalTextPosition( 
            /* [retval][out] */ GcDimVerticalJustification *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_VerticalTextPosition( 
            /* [in] */ GcDimVerticalJustification Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TolerancePrecision( 
            /* [retval][out] */ GcDimPrecision *precision) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TolerancePrecision( 
            /* [in] */ GcDimPrecision precision) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceHeightScale( 
            /* [retval][out] */ GCAD_NOUNITS *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceHeightScale( 
            /* [in] */ GCAD_NOUNITS scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceLowerLimit( 
            /* [retval][out] */ double *lower) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceLowerLimit( 
            /* [in] */ double lower) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextMovement( 
            /* [retval][out] */ GcDimTextMovement *Move) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextMovement( 
            /* [in] */ GcDimTextMovement Move) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceDisplay( 
            /* [retval][out] */ GcDimToleranceMethod *method) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceDisplay( 
            /* [in] */ GcDimToleranceMethod method) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceJustification( 
            /* [retval][out] */ GcDimToleranceJustify *method) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceJustification( 
            /* [in] */ GcDimToleranceJustify method) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceUpperLimit( 
            /* [retval][out] */ double *upper) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceUpperLimit( 
            /* [in] */ double upper) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextStyle( 
            /* [retval][out] */ BSTR *style) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextStyle( 
            /* [in] */ BSTR style) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextHeight( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextHeight( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextFill( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextFill( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextFillColor( 
            /* [retval][out] */ GCAD_COLOR *color) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextFillColor( 
            /* [in] */ GCAD_COLOR color) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimTxtDirection( 
            /* [retval][out] */ VARIANT_BOOL *pbVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimTxtDirection( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDimensionVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDimension * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDimension * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDimension * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDimension * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDimension * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDimension * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDimension * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDimension * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDimension * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDimension * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDimension * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDimension * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDimension * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDimension * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDimension * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDimension * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDimension * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDimension * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadDimension * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadDimension * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadDimension * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadDimension * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadDimension * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadDimension * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadDimension * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadDimension * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadDimension * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadDimension * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadDimension * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadDimension * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadDimension * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadDimension * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadDimension * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadDimension * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadDimension * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadDimension * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadDimension * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadDimension * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadDimension * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadDimension * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadDimension * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadDimension * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadDimension * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadDimension * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadDimension * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadDimension * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadDimension * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadDimension * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadDimension * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadDimension * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadDimension * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadDimension * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadDimension * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPosition )( 
            IGcadDimension * This,
            /* [retval][out] */ VARIANT *textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPosition )( 
            IGcadDimension * This,
            /* [in] */ VARIANT textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRotation )( 
            IGcadDimension * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRotation )( 
            IGcadDimension * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextOverride)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOverride )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextOverride)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOverride )( 
            IGcadDimension * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadDimension * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadDimension * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadDimension * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DecimalSeparator)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DecimalSeparator )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DecimalSeparator)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DecimalSeparator )( 
            IGcadDimension * This,
            /* [in] */ BSTR character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGap )( 
            IGcadDimension * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGap )( 
            IGcadDimension * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrefix )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrefix )( 
            IGcadDimension * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextSuffix )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextSuffix )( 
            IGcadDimension * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadDimension * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadDimension * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_VerticalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalTextPosition )( 
            IGcadDimension * This,
            /* [retval][out] */ GcDimVerticalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_VerticalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalTextPosition )( 
            IGcadDimension * This,
            /* [in] */ GcDimVerticalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TolerancePrecision )( 
            IGcadDimension * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TolerancePrecision )( 
            IGcadDimension * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceHeightScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceHeightScale )( 
            IGcadDimension * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceHeightScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceHeightScale )( 
            IGcadDimension * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceLowerLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceLowerLimit )( 
            IGcadDimension * This,
            /* [retval][out] */ double *lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceLowerLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceLowerLimit )( 
            IGcadDimension * This,
            /* [in] */ double lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextMovement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextMovement )( 
            IGcadDimension * This,
            /* [retval][out] */ GcDimTextMovement *Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextMovement)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextMovement )( 
            IGcadDimension * This,
            /* [in] */ GcDimTextMovement Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceDisplay )( 
            IGcadDimension * This,
            /* [retval][out] */ GcDimToleranceMethod *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceDisplay )( 
            IGcadDimension * This,
            /* [in] */ GcDimToleranceMethod method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceJustification)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceJustification )( 
            IGcadDimension * This,
            /* [retval][out] */ GcDimToleranceJustify *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceJustification)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceJustification )( 
            IGcadDimension * This,
            /* [in] */ GcDimToleranceJustify method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceUpperLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceUpperLimit )( 
            IGcadDimension * This,
            /* [retval][out] */ double *upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceUpperLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceUpperLimit )( 
            IGcadDimension * This,
            /* [in] */ double upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadDimension * This,
            /* [retval][out] */ BSTR *style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadDimension * This,
            /* [in] */ BSTR style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadDimension * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadDimension * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressLeadingZeros )( 
            IGcadDimension * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressLeadingZeros )( 
            IGcadDimension * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressTrailingZeros )( 
            IGcadDimension * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressTrailingZeros )( 
            IGcadDimension * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressLeadingZeros )( 
            IGcadDimension * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressLeadingZeros )( 
            IGcadDimension * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressTrailingZeros )( 
            IGcadDimension * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressTrailingZeros )( 
            IGcadDimension * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFill )( 
            IGcadDimension * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFill )( 
            IGcadDimension * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFillColor )( 
            IGcadDimension * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFillColor )( 
            IGcadDimension * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DimTxtDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimTxtDirection )( 
            IGcadDimension * This,
            /* [retval][out] */ VARIANT_BOOL *pbVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DimTxtDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimTxtDirection )( 
            IGcadDimension * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        END_INTERFACE
    } IGcadDimensionVtbl;

    interface IGcadDimension
    {
        CONST_VTBL struct IGcadDimensionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDimension_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDimension_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDimension_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDimension_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDimension_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDimension_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDimension_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDimension_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDimension_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDimension_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDimension_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDimension_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDimension_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDimension_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDimension_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDimension_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDimension_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDimension_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDimension_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDimension_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDimension_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadDimension_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadDimension_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadDimension_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadDimension_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadDimension_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadDimension_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadDimension_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadDimension_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadDimension_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadDimension_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadDimension_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadDimension_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadDimension_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadDimension_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadDimension_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadDimension_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadDimension_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadDimension_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadDimension_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadDimension_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadDimension_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadDimension_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadDimension_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadDimension_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadDimension_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadDimension_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadDimension_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadDimension_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadDimension_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadDimension_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadDimension_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadDimension_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadDimension_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadDimension_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadDimension_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadDimension_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadDimension_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadDimension_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadDimension_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadDimension_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadDimension_get_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> get_TextPosition(This,textPos) ) 

#define IGcadDimension_put_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> put_TextPosition(This,textPos) ) 

#define IGcadDimension_get_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_TextRotation(This,rotAngle) ) 

#define IGcadDimension_put_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_TextRotation(This,rotAngle) ) 

#define IGcadDimension_get_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextOverride(This,bstrText) ) 

#define IGcadDimension_put_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextOverride(This,bstrText) ) 

#define IGcadDimension_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadDimension_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadDimension_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadDimension_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadDimension_get_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> get_DecimalSeparator(This,character) ) 

#define IGcadDimension_put_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> put_DecimalSeparator(This,character) ) 

#define IGcadDimension_get_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> get_TextGap(This,Offset) ) 

#define IGcadDimension_put_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> put_TextGap(This,Offset) ) 

#define IGcadDimension_get_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_TextPrefix(This,prefix) ) 

#define IGcadDimension_put_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_TextPrefix(This,prefix) ) 

#define IGcadDimension_get_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_TextSuffix(This,suffix) ) 

#define IGcadDimension_put_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_TextSuffix(This,suffix) ) 

#define IGcadDimension_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadDimension_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadDimension_get_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_VerticalTextPosition(This,Type) ) 

#define IGcadDimension_put_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_VerticalTextPosition(This,Type) ) 

#define IGcadDimension_get_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> get_TolerancePrecision(This,precision) ) 

#define IGcadDimension_put_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> put_TolerancePrecision(This,precision) ) 

#define IGcadDimension_get_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> get_ToleranceHeightScale(This,scale) ) 

#define IGcadDimension_put_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> put_ToleranceHeightScale(This,scale) ) 

#define IGcadDimension_get_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> get_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimension_put_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> put_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimension_get_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> get_TextMovement(This,Move) ) 

#define IGcadDimension_put_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> put_TextMovement(This,Move) ) 

#define IGcadDimension_get_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceDisplay(This,method) ) 

#define IGcadDimension_put_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceDisplay(This,method) ) 

#define IGcadDimension_get_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceJustification(This,method) ) 

#define IGcadDimension_put_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceJustification(This,method) ) 

#define IGcadDimension_get_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> get_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimension_put_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> put_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimension_get_TextStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextStyle(This,style) ) 

#define IGcadDimension_put_TextStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextStyle(This,style) ) 

#define IGcadDimension_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadDimension_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadDimension_get_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimension_put_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimension_get_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimension_put_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimension_get_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimension_put_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimension_get_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimension_put_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimension_get_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> get_TextFill(This,bVal) ) 

#define IGcadDimension_put_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> put_TextFill(This,bVal) ) 

#define IGcadDimension_get_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> get_TextFillColor(This,color) ) 

#define IGcadDimension_put_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> put_TextFillColor(This,color) ) 

#define IGcadDimension_get_DimTxtDirection(This,pbVal)	\
    ( (This)->lpVtbl -> get_DimTxtDirection(This,pbVal) ) 

#define IGcadDimension_put_DimTxtDirection(This,bVal)	\
    ( (This)->lpVtbl -> put_DimTxtDirection(This,bVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadDimension_INTERFACE_DEFINED__ */


#ifndef __IGcadDimAligned_INTERFACE_DEFINED__
#define __IGcadDimAligned_INTERFACE_DEFINED__

/* interface IGcadDimAligned */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDimAligned;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("21E8F2DD-9EB3-4B41-AF26-1D32C67294B6")
    IGcadDimAligned : public IGcadDimension
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Point( 
            /* [retval][out] */ VARIANT *xLine1Point) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Point( 
            /* [in] */ VARIANT xLine1Point) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Point( 
            /* [retval][out] */ VARIANT *xLine2Point) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Point( 
            /* [in] */ VARIANT xLine2Point) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnits( 
            /* [retval][out] */ VARIANT_BOOL *bAlternate) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnits( 
            /* [in] */ VARIANT_BOOL bAlternate) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *precision) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsPrecision( 
            /* [in] */ GcDimPrecision precision) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsScale( 
            /* [retval][out] */ GCAD_NOUNITS *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsScale( 
            /* [in] */ GCAD_NOUNITS scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltRoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltRoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTolerancePrecision( 
            /* [retval][out] */ GcDimPrecision *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTolerancePrecision( 
            /* [in] */ GcDimPrecision Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsFormat( 
            /* [retval][out] */ GcDimUnits *Units) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsFormat( 
            /* [in] */ GcDimUnits Units) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextPrefix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextPrefix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextSuffix( 
            /* [retval][out] */ BSTR *suffix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextSuffix( 
            /* [in] */ BSTR suffix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *color) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineColor( 
            /* [in] */ GCAD_COLOR color) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *color) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineColor( 
            /* [in] */ GCAD_COLOR color) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PrimaryUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *Prec) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PrimaryUnitsPrecision( 
            /* [in] */ GcDimPrecision Prec) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineExtend( 
            /* [retval][out] */ double *extend) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineExtend( 
            /* [in] */ double extend) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineExtend( 
            /* [retval][out] */ double *extend) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineExtend( 
            /* [in] */ double extend) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Fit( 
            /* [retval][out] */ GcDimFit *fittype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Fit( 
            /* [in] */ GcDimFit fittype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FractionFormat( 
            /* [retval][out] */ GcDimFractionType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FractionFormat( 
            /* [in] */ GcDimFractionType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalTextPosition( 
            /* [retval][out] */ GcDimHorizontalJustification *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HorizontalTextPosition( 
            /* [in] */ GcDimHorizontalJustification Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LinearScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LinearScaleFactor( 
            /* [in] */ GCAD_NOUNITS Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnitsFormat( 
            /* [retval][out] */ GcDimLUnits *format) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UnitsFormat( 
            /* [in] */ GcDimLUnits format) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *lweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT lweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine1Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine1Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine2Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine2Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForceLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForceLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextOutsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextOutsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineOffset( 
            /* [retval][out] */ double *Offset) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineOffset( 
            /* [in] */ double Offset) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *weight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT weight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Measurement( 
            /* [retval][out] */ double *bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLenSuppress( 
            /* [retval][out] */ VARIANT_BOOL *bFixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLenSuppress( 
            /* [in] */ VARIANT_BOOL bFixedLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLen( 
            /* [retval][out] */ double *FixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLen( 
            /* [in] */ double FixedLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrForm( 
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrForm( 
            /* [in] */ VARIANT_BOOL bIsDynamic) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrReference( 
            /* [retval][out] */ VARIANT_BOOL *bIsReference) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrReference( 
            /* [in] */ VARIANT_BOOL bIsReference) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrExpression( 
            /* [retval][out] */ BSTR *bstrExpression) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrExpression( 
            /* [in] */ BSTR bstrExpression) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrValue( 
            /* [retval][out] */ BSTR *Value) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrValue( 
            /* [in] */ BSTR Value) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrDesc( 
            /* [retval][out] */ BSTR *bstrDescription) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrDesc( 
            /* [in] */ BSTR bstrDescription) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SubUnitsSuffix( 
            /* [retval][out] */ BSTR *suffix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SubUnitsSuffix( 
            /* [in] */ BSTR suffix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SubUnitsFactor( 
            /* [retval][out] */ double *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SubUnitsFactor( 
            /* [in] */ double factor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSubUnitsSuffix( 
            /* [retval][out] */ BSTR *suffix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSubUnitsSuffix( 
            /* [in] */ BSTR suffix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSubUnitsFactor( 
            /* [retval][out] */ double *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSubUnitsFactor( 
            /* [in] */ double factor) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDimAlignedVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDimAligned * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDimAligned * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDimAligned * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDimAligned * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDimAligned * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDimAligned * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDimAligned * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDimAligned * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDimAligned * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDimAligned * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDimAligned * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDimAligned * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDimAligned * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDimAligned * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDimAligned * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadDimAligned * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadDimAligned * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadDimAligned * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadDimAligned * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadDimAligned * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadDimAligned * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadDimAligned * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadDimAligned * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadDimAligned * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadDimAligned * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPosition )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT *textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPosition )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRotation )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRotation )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextOverride)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOverride )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextOverride)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOverride )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DecimalSeparator)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DecimalSeparator )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DecimalSeparator)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DecimalSeparator )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGap )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGap )( 
            IGcadDimAligned * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrefix )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrefix )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextSuffix )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextSuffix )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_VerticalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalTextPosition )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimVerticalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_VerticalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalTextPosition )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimVerticalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TolerancePrecision )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TolerancePrecision )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceHeightScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceHeightScale )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceHeightScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceHeightScale )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceLowerLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceLowerLimit )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceLowerLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceLowerLimit )( 
            IGcadDimAligned * This,
            /* [in] */ double lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextMovement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextMovement )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimTextMovement *Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextMovement)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextMovement )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimTextMovement Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceDisplay )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimToleranceMethod *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceDisplay )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimToleranceMethod method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceJustification)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceJustification )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimToleranceJustify *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceJustification)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceJustification )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimToleranceJustify method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceUpperLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceUpperLimit )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceUpperLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceUpperLimit )( 
            IGcadDimAligned * This,
            /* [in] */ double upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadDimAligned * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressLeadingZeros )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressLeadingZeros )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressTrailingZeros )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressTrailingZeros )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressLeadingZeros )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressLeadingZeros )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressTrailingZeros )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressTrailingZeros )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFill )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFill )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFillColor )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFillColor )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DimTxtDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimTxtDirection )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *pbVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DimTxtDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimTxtDirection )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtLine1Point)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Point )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT *xLine1Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtLine1Point)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Point )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT xLine1Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtLine2Point)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Point )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT *xLine2Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtLine2Point)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Point )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT xLine2Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnits )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltUnits)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnits )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsPrecision )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsPrecision )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltUnitsScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsScale )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltUnitsScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsScale )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltRoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltRoundDistance )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltRoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltRoundDistance )( 
            IGcadDimAligned * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltTolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTolerancePrecision )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimPrecision *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltTolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTolerancePrecision )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimPrecision Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltUnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsFormat )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimUnits *Units);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltUnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsFormat )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimUnits Units);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltTextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextPrefix )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltTextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextPrefix )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltTextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextSuffix )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltTextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextSuffix )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineColor )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineColor )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineColor )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineColor )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_PrimaryUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrimaryUnitsPrecision )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimPrecision *Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_PrimaryUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PrimaryUnitsPrecision )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimPrecision Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimensionLineExtend)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineExtend )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *extend);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimensionLineExtend)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineExtend )( 
            IGcadDimAligned * This,
            /* [in] */ double extend);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtensionLineExtend)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineExtend )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *extend);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtensionLineExtend)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineExtend )( 
            IGcadDimAligned * This,
            /* [in] */ double extend);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_Fit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fit )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimFit *fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_Fit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fit )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimFit fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_FractionFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FractionFormat )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimFractionType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_FractionFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FractionFormat )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimFractionType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_HorizontalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalTextPosition )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimHorizontalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_HorizontalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HorizontalTextPosition )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimHorizontalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_LinearScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinearScaleFactor )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_NOUNITS *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_LinearScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinearScaleFactor )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_NOUNITS Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_UnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnitsFormat )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimLUnits *format);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_UnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnitsFormat )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimLUnits format);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineWeight )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_LWEIGHT *lweight);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineWeight )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_LWEIGHT lweight);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_RoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RoundDistance )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_RoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RoundDistance )( 
            IGcadDimAligned * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimLine1Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine1Suppress )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimLine1Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine1Suppress )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimLine2Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine2Suppress )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimLine2Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine2Suppress )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtLine1Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Suppress )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtLine1Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Suppress )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtLine2Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Suppress )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtLine2Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Suppress )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLineInside )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLineInside )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_TextInsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInsideAlign )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_TextInsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInsideAlign )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_TextInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInside )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_TextInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInside )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ForceLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForceLineInside )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ForceLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForceLineInside )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_TextOutsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOutsideAlign )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_TextOutsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOutsideAlign )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtensionLineOffset)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineOffset )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtensionLineOffset)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineOffset )( 
            IGcadDimAligned * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressLeadingZeros )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressLeadingZeros )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressTrailingZeros )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressTrailingZeros )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroFeet )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroFeet )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroInches )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroInches )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressLeadingZeros )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressLeadingZeros )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressTrailingZeros )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressTrailingZeros )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroFeet )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroFeet )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroInches )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroInches )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_SuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroFeet )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_SuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroFeet )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_SuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroInches )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_SuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroInches )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroFeet )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroFeet )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroInches )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroInches )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineWeight )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GCAD_LWEIGHT *weight);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineWeight )( 
            IGcadDimAligned * This,
            /* [in] */ GCAD_LWEIGHT weight);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadDimAligned * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_Arrowhead1Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Type )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_Arrowhead1Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Type )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_Arrowhead2Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Type )( 
            IGcadDimAligned * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_Arrowhead2Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Type )( 
            IGcadDimAligned * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_Measurement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Measurement )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_Arrowhead1Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Block )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_Arrowhead1Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Block )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_Arrowhead2Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Block )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_Arrowhead2Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Block )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimensionLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLinetype )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimensionLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLinetype )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtLine1Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Linetype )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtLine1Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Linetype )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtLine2Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Linetype )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtLine2Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Linetype )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtLineFixedLenSuppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLenSuppress )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtLineFixedLenSuppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLenSuppress )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_ExtLineFixedLen)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLen )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_ExtLineFixedLen)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLen )( 
            IGcadDimAligned * This,
            /* [in] */ double FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimConstrForm)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrForm )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimConstrForm)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrForm )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimConstrReference)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrReference )( 
            IGcadDimAligned * This,
            /* [retval][out] */ VARIANT_BOOL *bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimConstrReference)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrReference )( 
            IGcadDimAligned * This,
            /* [in] */ VARIANT_BOOL bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimConstrName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrName )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimConstrName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrName )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimConstrExpression)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrExpression )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimConstrExpression)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrExpression )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimConstrValue)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrValue )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *Value);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimConstrValue)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrValue )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR Value);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_DimConstrDesc)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrDesc )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *bstrDescription);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_DimConstrDesc)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrDesc )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR bstrDescription);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_SubUnitsSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SubUnitsSuffix )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_SubUnitsSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SubUnitsSuffix )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_SubUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SubUnitsFactor )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_SubUnitsFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SubUnitsFactor )( 
            IGcadDimAligned * This,
            /* [in] */ double factor);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltSubUnitsSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSubUnitsSuffix )( 
            IGcadDimAligned * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltSubUnitsSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSubUnitsSuffix )( 
            IGcadDimAligned * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, get_AltSubUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSubUnitsFactor )( 
            IGcadDimAligned * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimAligned, put_AltSubUnitsFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSubUnitsFactor )( 
            IGcadDimAligned * This,
            /* [in] */ double factor);
        
        END_INTERFACE
    } IGcadDimAlignedVtbl;

    interface IGcadDimAligned
    {
        CONST_VTBL struct IGcadDimAlignedVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDimAligned_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDimAligned_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDimAligned_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDimAligned_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDimAligned_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDimAligned_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDimAligned_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDimAligned_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDimAligned_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDimAligned_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDimAligned_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDimAligned_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDimAligned_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDimAligned_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDimAligned_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDimAligned_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDimAligned_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDimAligned_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDimAligned_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDimAligned_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDimAligned_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadDimAligned_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadDimAligned_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadDimAligned_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadDimAligned_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadDimAligned_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadDimAligned_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadDimAligned_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadDimAligned_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadDimAligned_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadDimAligned_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadDimAligned_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadDimAligned_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadDimAligned_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadDimAligned_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadDimAligned_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadDimAligned_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadDimAligned_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadDimAligned_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadDimAligned_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadDimAligned_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadDimAligned_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadDimAligned_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadDimAligned_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadDimAligned_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadDimAligned_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadDimAligned_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadDimAligned_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadDimAligned_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadDimAligned_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadDimAligned_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadDimAligned_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadDimAligned_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadDimAligned_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadDimAligned_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadDimAligned_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadDimAligned_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadDimAligned_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadDimAligned_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadDimAligned_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadDimAligned_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadDimAligned_get_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> get_TextPosition(This,textPos) ) 

#define IGcadDimAligned_put_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> put_TextPosition(This,textPos) ) 

#define IGcadDimAligned_get_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_TextRotation(This,rotAngle) ) 

#define IGcadDimAligned_put_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_TextRotation(This,rotAngle) ) 

#define IGcadDimAligned_get_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextOverride(This,bstrText) ) 

#define IGcadDimAligned_put_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextOverride(This,bstrText) ) 

#define IGcadDimAligned_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadDimAligned_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadDimAligned_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadDimAligned_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadDimAligned_get_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> get_DecimalSeparator(This,character) ) 

#define IGcadDimAligned_put_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> put_DecimalSeparator(This,character) ) 

#define IGcadDimAligned_get_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> get_TextGap(This,Offset) ) 

#define IGcadDimAligned_put_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> put_TextGap(This,Offset) ) 

#define IGcadDimAligned_get_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_TextPrefix(This,prefix) ) 

#define IGcadDimAligned_put_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_TextPrefix(This,prefix) ) 

#define IGcadDimAligned_get_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_TextSuffix(This,suffix) ) 

#define IGcadDimAligned_put_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_TextSuffix(This,suffix) ) 

#define IGcadDimAligned_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadDimAligned_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadDimAligned_get_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_VerticalTextPosition(This,Type) ) 

#define IGcadDimAligned_put_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_VerticalTextPosition(This,Type) ) 

#define IGcadDimAligned_get_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> get_TolerancePrecision(This,precision) ) 

#define IGcadDimAligned_put_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> put_TolerancePrecision(This,precision) ) 

#define IGcadDimAligned_get_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> get_ToleranceHeightScale(This,scale) ) 

#define IGcadDimAligned_put_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> put_ToleranceHeightScale(This,scale) ) 

#define IGcadDimAligned_get_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> get_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimAligned_put_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> put_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimAligned_get_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> get_TextMovement(This,Move) ) 

#define IGcadDimAligned_put_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> put_TextMovement(This,Move) ) 

#define IGcadDimAligned_get_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceDisplay(This,method) ) 

#define IGcadDimAligned_put_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceDisplay(This,method) ) 

#define IGcadDimAligned_get_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceJustification(This,method) ) 

#define IGcadDimAligned_put_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceJustification(This,method) ) 

#define IGcadDimAligned_get_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> get_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimAligned_put_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> put_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimAligned_get_TextStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextStyle(This,style) ) 

#define IGcadDimAligned_put_TextStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextStyle(This,style) ) 

#define IGcadDimAligned_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadDimAligned_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadDimAligned_get_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAligned_put_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAligned_get_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAligned_put_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAligned_get_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAligned_put_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAligned_get_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAligned_put_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAligned_get_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> get_TextFill(This,bVal) ) 

#define IGcadDimAligned_put_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> put_TextFill(This,bVal) ) 

#define IGcadDimAligned_get_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> get_TextFillColor(This,color) ) 

#define IGcadDimAligned_put_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> put_TextFillColor(This,color) ) 

#define IGcadDimAligned_get_DimTxtDirection(This,pbVal)	\
    ( (This)->lpVtbl -> get_DimTxtDirection(This,pbVal) ) 

#define IGcadDimAligned_put_DimTxtDirection(This,bVal)	\
    ( (This)->lpVtbl -> put_DimTxtDirection(This,bVal) ) 


#define IGcadDimAligned_get_ExtLine1Point(This,xLine1Point)	\
    ( (This)->lpVtbl -> get_ExtLine1Point(This,xLine1Point) ) 

#define IGcadDimAligned_put_ExtLine1Point(This,xLine1Point)	\
    ( (This)->lpVtbl -> put_ExtLine1Point(This,xLine1Point) ) 

#define IGcadDimAligned_get_ExtLine2Point(This,xLine2Point)	\
    ( (This)->lpVtbl -> get_ExtLine2Point(This,xLine2Point) ) 

#define IGcadDimAligned_put_ExtLine2Point(This,xLine2Point)	\
    ( (This)->lpVtbl -> put_ExtLine2Point(This,xLine2Point) ) 

#define IGcadDimAligned_get_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> get_AltUnits(This,bAlternate) ) 

#define IGcadDimAligned_put_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> put_AltUnits(This,bAlternate) ) 

#define IGcadDimAligned_get_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> get_AltUnitsPrecision(This,precision) ) 

#define IGcadDimAligned_put_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> put_AltUnitsPrecision(This,precision) ) 

#define IGcadDimAligned_get_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> get_AltUnitsScale(This,scale) ) 

#define IGcadDimAligned_put_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> put_AltUnitsScale(This,scale) ) 

#define IGcadDimAligned_get_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_AltRoundDistance(This,Distance) ) 

#define IGcadDimAligned_put_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_AltRoundDistance(This,Distance) ) 

#define IGcadDimAligned_get_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> get_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimAligned_put_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> put_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimAligned_get_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> get_AltUnitsFormat(This,Units) ) 

#define IGcadDimAligned_put_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> put_AltUnitsFormat(This,Units) ) 

#define IGcadDimAligned_get_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextPrefix(This,prefix) ) 

#define IGcadDimAligned_put_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextPrefix(This,prefix) ) 

#define IGcadDimAligned_get_AltTextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_AltTextSuffix(This,suffix) ) 

#define IGcadDimAligned_put_AltTextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_AltTextSuffix(This,suffix) ) 

#define IGcadDimAligned_get_DimensionLineColor(This,color)	\
    ( (This)->lpVtbl -> get_DimensionLineColor(This,color) ) 

#define IGcadDimAligned_put_DimensionLineColor(This,color)	\
    ( (This)->lpVtbl -> put_DimensionLineColor(This,color) ) 

#define IGcadDimAligned_get_ExtensionLineColor(This,color)	\
    ( (This)->lpVtbl -> get_ExtensionLineColor(This,color) ) 

#define IGcadDimAligned_put_ExtensionLineColor(This,color)	\
    ( (This)->lpVtbl -> put_ExtensionLineColor(This,color) ) 

#define IGcadDimAligned_get_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> get_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimAligned_put_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> put_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimAligned_get_DimensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> get_DimensionLineExtend(This,extend) ) 

#define IGcadDimAligned_put_DimensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> put_DimensionLineExtend(This,extend) ) 

#define IGcadDimAligned_get_ExtensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> get_ExtensionLineExtend(This,extend) ) 

#define IGcadDimAligned_put_ExtensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> put_ExtensionLineExtend(This,extend) ) 

#define IGcadDimAligned_get_Fit(This,fittype)	\
    ( (This)->lpVtbl -> get_Fit(This,fittype) ) 

#define IGcadDimAligned_put_Fit(This,fittype)	\
    ( (This)->lpVtbl -> put_Fit(This,fittype) ) 

#define IGcadDimAligned_get_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> get_FractionFormat(This,Type) ) 

#define IGcadDimAligned_put_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> put_FractionFormat(This,Type) ) 

#define IGcadDimAligned_get_HorizontalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_HorizontalTextPosition(This,Type) ) 

#define IGcadDimAligned_put_HorizontalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_HorizontalTextPosition(This,Type) ) 

#define IGcadDimAligned_get_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> get_LinearScaleFactor(This,Type) ) 

#define IGcadDimAligned_put_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> put_LinearScaleFactor(This,Type) ) 

#define IGcadDimAligned_get_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> get_UnitsFormat(This,format) ) 

#define IGcadDimAligned_put_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> put_UnitsFormat(This,format) ) 

#define IGcadDimAligned_get_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> get_ExtensionLineWeight(This,lweight) ) 

#define IGcadDimAligned_put_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> put_ExtensionLineWeight(This,lweight) ) 

#define IGcadDimAligned_get_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_RoundDistance(This,Distance) ) 

#define IGcadDimAligned_put_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_RoundDistance(This,Distance) ) 

#define IGcadDimAligned_get_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDimAligned_put_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDimAligned_get_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDimAligned_put_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDimAligned_get_ExtLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_ExtLine1Suppress(This,bSuppress) ) 

#define IGcadDimAligned_put_ExtLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_ExtLine1Suppress(This,bSuppress) ) 

#define IGcadDimAligned_get_ExtLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_ExtLine2Suppress(This,bSuppress) ) 

#define IGcadDimAligned_put_ExtLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_ExtLine2Suppress(This,bSuppress) ) 

#define IGcadDimAligned_get_DimLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_DimLineInside(This,bInside) ) 

#define IGcadDimAligned_put_DimLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_DimLineInside(This,bInside) ) 

#define IGcadDimAligned_get_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInsideAlign(This,bInside) ) 

#define IGcadDimAligned_put_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInsideAlign(This,bInside) ) 

#define IGcadDimAligned_get_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInside(This,bInside) ) 

#define IGcadDimAligned_put_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInside(This,bInside) ) 

#define IGcadDimAligned_get_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_ForceLineInside(This,bInside) ) 

#define IGcadDimAligned_put_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_ForceLineInside(This,bInside) ) 

#define IGcadDimAligned_get_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextOutsideAlign(This,bInside) ) 

#define IGcadDimAligned_put_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextOutsideAlign(This,bInside) ) 

#define IGcadDimAligned_get_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> get_ExtensionLineOffset(This,Offset) ) 

#define IGcadDimAligned_put_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> put_ExtensionLineOffset(This,Offset) ) 

#define IGcadDimAligned_get_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAligned_put_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAligned_get_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAligned_put_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAligned_get_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimAligned_put_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimAligned_get_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimAligned_put_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimAligned_get_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAligned_put_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAligned_get_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAligned_put_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAligned_get_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimAligned_put_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimAligned_get_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimAligned_put_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimAligned_get_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimAligned_put_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimAligned_get_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroInches(This,bVal) ) 

#define IGcadDimAligned_put_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroInches(This,bVal) ) 

#define IGcadDimAligned_get_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimAligned_put_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimAligned_get_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimAligned_put_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimAligned_get_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> get_DimensionLineWeight(This,weight) ) 

#define IGcadDimAligned_put_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> put_DimensionLineWeight(This,weight) ) 

#define IGcadDimAligned_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadDimAligned_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadDimAligned_get_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead1Type(This,Type) ) 

#define IGcadDimAligned_put_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead1Type(This,Type) ) 

#define IGcadDimAligned_get_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead2Type(This,Type) ) 

#define IGcadDimAligned_put_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead2Type(This,Type) ) 

#define IGcadDimAligned_get_Measurement(This,bVal)	\
    ( (This)->lpVtbl -> get_Measurement(This,bVal) ) 

#define IGcadDimAligned_get_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead1Block(This,BlockName) ) 

#define IGcadDimAligned_put_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead1Block(This,BlockName) ) 

#define IGcadDimAligned_get_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead2Block(This,BlockName) ) 

#define IGcadDimAligned_put_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead2Block(This,BlockName) ) 

#define IGcadDimAligned_get_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_DimensionLinetype(This,Linetype) ) 

#define IGcadDimAligned_put_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_DimensionLinetype(This,Linetype) ) 

#define IGcadDimAligned_get_ExtLine1Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ExtLine1Linetype(This,Linetype) ) 

#define IGcadDimAligned_put_ExtLine1Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ExtLine1Linetype(This,Linetype) ) 

#define IGcadDimAligned_get_ExtLine2Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ExtLine2Linetype(This,Linetype) ) 

#define IGcadDimAligned_put_ExtLine2Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ExtLine2Linetype(This,Linetype) ) 

#define IGcadDimAligned_get_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDimAligned_put_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDimAligned_get_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDimAligned_put_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDimAligned_get_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> get_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDimAligned_put_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> put_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDimAligned_get_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> get_DimConstrReference(This,bIsReference) ) 

#define IGcadDimAligned_put_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> put_DimConstrReference(This,bIsReference) ) 

#define IGcadDimAligned_get_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> get_DimConstrName(This,bstrName) ) 

#define IGcadDimAligned_put_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> put_DimConstrName(This,bstrName) ) 

#define IGcadDimAligned_get_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> get_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDimAligned_put_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> put_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDimAligned_get_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> get_DimConstrValue(This,Value) ) 

#define IGcadDimAligned_put_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> put_DimConstrValue(This,Value) ) 

#define IGcadDimAligned_get_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> get_DimConstrDesc(This,bstrDescription) ) 

#define IGcadDimAligned_put_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> put_DimConstrDesc(This,bstrDescription) ) 

#define IGcadDimAligned_get_SubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_SubUnitsSuffix(This,suffix) ) 

#define IGcadDimAligned_put_SubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_SubUnitsSuffix(This,suffix) ) 

#define IGcadDimAligned_get_SubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_SubUnitsFactor(This,factor) ) 

#define IGcadDimAligned_put_SubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> put_SubUnitsFactor(This,factor) ) 

#define IGcadDimAligned_get_AltSubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_AltSubUnitsSuffix(This,suffix) ) 

#define IGcadDimAligned_put_AltSubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_AltSubUnitsSuffix(This,suffix) ) 

#define IGcadDimAligned_get_AltSubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_AltSubUnitsFactor(This,factor) ) 

#define IGcadDimAligned_put_AltSubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> put_AltSubUnitsFactor(This,factor) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltTolerancePrecision_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GcDimPrecision Distance);


void __RPC_STUB IGcadDimAligned_put_AltTolerancePrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltUnitsFormat_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GcDimUnits *Units);


void __RPC_STUB IGcadDimAligned_get_AltUnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltUnitsFormat_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GcDimUnits Units);


void __RPC_STUB IGcadDimAligned_put_AltUnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltTextPrefix_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *prefix);


void __RPC_STUB IGcadDimAligned_get_AltTextPrefix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltTextPrefix_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimAligned_put_AltTextPrefix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltTextSuffix_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *suffix);


void __RPC_STUB IGcadDimAligned_get_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltTextSuffix_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR suffix);


void __RPC_STUB IGcadDimAligned_put_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimensionLineColor_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GCAD_COLOR *color);


void __RPC_STUB IGcadDimAligned_get_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimensionLineColor_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GCAD_COLOR color);


void __RPC_STUB IGcadDimAligned_put_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ExtensionLineColor_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GCAD_COLOR *color);


void __RPC_STUB IGcadDimAligned_get_ExtensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ExtensionLineColor_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GCAD_COLOR color);


void __RPC_STUB IGcadDimAligned_put_ExtensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_PrimaryUnitsPrecision_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GcDimPrecision *Prec);


void __RPC_STUB IGcadDimAligned_get_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_PrimaryUnitsPrecision_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GcDimPrecision Prec);


void __RPC_STUB IGcadDimAligned_put_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimensionLineExtend_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ double *extend);


void __RPC_STUB IGcadDimAligned_get_DimensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimensionLineExtend_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ double extend);


void __RPC_STUB IGcadDimAligned_put_DimensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ExtensionLineExtend_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ double *extend);


void __RPC_STUB IGcadDimAligned_get_ExtensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ExtensionLineExtend_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ double extend);


void __RPC_STUB IGcadDimAligned_put_ExtensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_Fit_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GcDimFit *fittype);


void __RPC_STUB IGcadDimAligned_get_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_Fit_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GcDimFit fittype);


void __RPC_STUB IGcadDimAligned_put_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_FractionFormat_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GcDimFractionType *Type);


void __RPC_STUB IGcadDimAligned_get_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_FractionFormat_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GcDimFractionType Type);


void __RPC_STUB IGcadDimAligned_put_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_HorizontalTextPosition_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GcDimHorizontalJustification *Type);


void __RPC_STUB IGcadDimAligned_get_HorizontalTextPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_HorizontalTextPosition_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GcDimHorizontalJustification Type);


void __RPC_STUB IGcadDimAligned_put_HorizontalTextPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_LinearScaleFactor_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GCAD_NOUNITS *Type);


void __RPC_STUB IGcadDimAligned_get_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_LinearScaleFactor_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GCAD_NOUNITS Type);


void __RPC_STUB IGcadDimAligned_put_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_UnitsFormat_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GcDimLUnits *format);


void __RPC_STUB IGcadDimAligned_get_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_UnitsFormat_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GcDimLUnits format);


void __RPC_STUB IGcadDimAligned_put_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ExtensionLineWeight_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GCAD_LWEIGHT *lweight);


void __RPC_STUB IGcadDimAligned_get_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ExtensionLineWeight_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GCAD_LWEIGHT lweight);


void __RPC_STUB IGcadDimAligned_put_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_RoundDistance_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ double *Distance);


void __RPC_STUB IGcadDimAligned_get_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_RoundDistance_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ double Distance);


void __RPC_STUB IGcadDimAligned_put_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimLine1Suppress_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimAligned_get_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimLine1Suppress_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimAligned_put_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimLine2Suppress_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimAligned_get_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimLine2Suppress_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimAligned_put_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ExtLine1Suppress_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimAligned_get_ExtLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ExtLine1Suppress_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimAligned_put_ExtLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ExtLine2Suppress_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimAligned_get_ExtLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ExtLine2Suppress_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimAligned_put_ExtLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimLineInside_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimAligned_get_DimLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimLineInside_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimAligned_put_DimLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_TextInsideAlign_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimAligned_get_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_TextInsideAlign_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimAligned_put_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_TextInside_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimAligned_get_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_TextInside_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimAligned_put_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ForceLineInside_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimAligned_get_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ForceLineInside_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimAligned_put_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_TextOutsideAlign_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimAligned_get_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_TextOutsideAlign_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimAligned_put_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ExtensionLineOffset_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ double *Offset);


void __RPC_STUB IGcadDimAligned_get_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ExtensionLineOffset_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ double Offset);


void __RPC_STUB IGcadDimAligned_put_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltSuppressLeadingZeros_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltSuppressLeadingZeros_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltSuppressTrailingZeros_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltSuppressTrailingZeros_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltSuppressZeroFeet_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltSuppressZeroFeet_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltSuppressZeroInches_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltSuppressZeroInches_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_SuppressZeroFeet_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_SuppressZeroFeet_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_SuppressZeroInches_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_SuppressZeroInches_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimAligned_get_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimAligned_put_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimensionLineWeight_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GCAD_LWEIGHT *weight);


void __RPC_STUB IGcadDimAligned_get_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimensionLineWeight_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GCAD_LWEIGHT weight);


void __RPC_STUB IGcadDimAligned_put_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ArrowheadSize_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ double *size);


void __RPC_STUB IGcadDimAligned_get_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ArrowheadSize_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ double size);


void __RPC_STUB IGcadDimAligned_put_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_Arrowhead1Type_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimAligned_get_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_Arrowhead1Type_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimAligned_put_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_Arrowhead2Type_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimAligned_get_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_Arrowhead2Type_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimAligned_put_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_Measurement_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ double *bVal);


void __RPC_STUB IGcadDimAligned_get_Measurement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_Arrowhead1Block_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimAligned_get_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_Arrowhead1Block_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimAligned_put_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_Arrowhead2Block_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimAligned_get_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_Arrowhead2Block_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimAligned_put_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimensionLinetype_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimAligned_get_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimensionLinetype_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimAligned_put_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ExtLine1Linetype_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimAligned_get_ExtLine1Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ExtLine1Linetype_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimAligned_put_ExtLine1Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ExtLine2Linetype_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimAligned_get_ExtLine2Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ExtLine2Linetype_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimAligned_put_ExtLine2Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ExtLineFixedLenSuppress_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bFixedLen);


void __RPC_STUB IGcadDimAligned_get_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ExtLineFixedLenSuppress_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bFixedLen);


void __RPC_STUB IGcadDimAligned_put_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_ExtLineFixedLen_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ double *FixedLen);


void __RPC_STUB IGcadDimAligned_get_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_ExtLineFixedLen_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ double FixedLen);


void __RPC_STUB IGcadDimAligned_put_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimConstrForm_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bIsDynamic);


void __RPC_STUB IGcadDimAligned_get_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimConstrForm_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bIsDynamic);


void __RPC_STUB IGcadDimAligned_put_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimConstrReference_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ VARIANT_BOOL *bIsReference);


void __RPC_STUB IGcadDimAligned_get_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimConstrReference_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ VARIANT_BOOL bIsReference);


void __RPC_STUB IGcadDimAligned_put_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimConstrName_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *bstrName);


void __RPC_STUB IGcadDimAligned_get_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimConstrName_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR bstrName);


void __RPC_STUB IGcadDimAligned_put_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimConstrExpression_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *bstrExpression);


void __RPC_STUB IGcadDimAligned_get_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimConstrExpression_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR bstrExpression);


void __RPC_STUB IGcadDimAligned_put_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimConstrValue_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *Value);


void __RPC_STUB IGcadDimAligned_get_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimConstrValue_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR Value);


void __RPC_STUB IGcadDimAligned_put_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_DimConstrDesc_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *bstrDescription);


void __RPC_STUB IGcadDimAligned_get_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_DimConstrDesc_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR bstrDescription);


void __RPC_STUB IGcadDimAligned_put_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_SubUnitsSuffix_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *suffix);


void __RPC_STUB IGcadDimAligned_get_SubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_SubUnitsSuffix_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR suffix);


void __RPC_STUB IGcadDimAligned_put_SubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_SubUnitsFactor_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ double *factor);


void __RPC_STUB IGcadDimAligned_get_SubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_SubUnitsFactor_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ double factor);


void __RPC_STUB IGcadDimAligned_put_SubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltSubUnitsSuffix_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ BSTR *suffix);


void __RPC_STUB IGcadDimAligned_get_AltSubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltSubUnitsSuffix_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ BSTR suffix);


void __RPC_STUB IGcadDimAligned_put_AltSubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_get_AltSubUnitsFactor_Proxy( 
    IGcadDimAligned * This,
    /* [retval][out] */ double *factor);


void __RPC_STUB IGcadDimAligned_get_AltSubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAligned_put_AltSubUnitsFactor_Proxy( 
    IGcadDimAligned * This,
    /* [in] */ double factor);


void __RPC_STUB IGcadDimAligned_put_AltSubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGcadDimAligned_INTERFACE_DEFINED__ */


#ifndef __IGcadDimAngular_INTERFACE_DEFINED__
#define __IGcadDimAngular_INTERFACE_DEFINED__

/* interface IGcadDimAngular */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDimAngular;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("78931DD8-09C7-44F5-9CB5-83198A8CD286")
    IGcadDimAngular : public IGcadDimension
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1StartPoint( 
            /* [retval][out] */ VARIANT *xLine1Point) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1StartPoint( 
            /* [in] */ VARIANT xLine1Point) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1EndPoint( 
            /* [retval][out] */ VARIANT *xLine1Point) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1EndPoint( 
            /* [in] */ VARIANT xLine1Point) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2StartPoint( 
            /* [retval][out] */ VARIANT *xLine2Point) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2StartPoint( 
            /* [in] */ VARIANT xLine2Point) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2EndPoint( 
            /* [retval][out] */ VARIANT *xLine2Point) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2EndPoint( 
            /* [in] */ VARIANT xLine2Point) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AngleFormat( 
            /* [retval][out] */ GcAngleUnits *format) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AngleFormat( 
            /* [in] */ GcAngleUnits format) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineExtend( 
            /* [retval][out] */ double *extend) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineExtend( 
            /* [in] */ double extend) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Fit( 
            /* [retval][out] */ GcDimFit *fittype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Fit( 
            /* [in] */ GcDimFit fittype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalTextPosition( 
            /* [retval][out] */ GcDimHorizontalJustification *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HorizontalTextPosition( 
            /* [in] */ GcDimHorizontalJustification Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *lweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT lweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine1Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine1Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine2Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine2Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForceLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForceLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextOutsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextOutsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextPrecision( 
            /* [retval][out] */ GcDimPrecision *precision) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextPrecision( 
            /* [in] */ GcDimPrecision precision) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineOffset( 
            /* [retval][out] */ double *Offset) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineOffset( 
            /* [in] */ double Offset) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *weight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT weight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Measurement( 
            /* [retval][out] */ GCAD_ANGLE *bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLenSuppress( 
            /* [retval][out] */ VARIANT_BOOL *bFixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLenSuppress( 
            /* [in] */ VARIANT_BOOL bFixedLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLen( 
            /* [retval][out] */ double *FixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLen( 
            /* [in] */ double FixedLen) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrForm( 
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic) = 0;
        
        virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrForm( 
            /* [in] */ VARIANT_BOOL bIsDynamic) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrReference( 
            /* [retval][out] */ VARIANT_BOOL *bIsReference) = 0;
        
        virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrReference( 
            /* [in] */ VARIANT_BOOL bIsReference) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrExpression( 
            /* [retval][out] */ BSTR *bstrExpression) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrExpression( 
            /* [in] */ BSTR bstrExpression) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrValue( 
            /* [retval][out] */ BSTR *Value) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrValue( 
            /* [in] */ BSTR Value) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrDesc( 
            /* [retval][out] */ BSTR *bstrDescription) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrDesc( 
            /* [in] */ BSTR bstrDescription) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDimAngularVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDimAngular * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDimAngular * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDimAngular * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDimAngular * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDimAngular * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDimAngular * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDimAngular * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDimAngular * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDimAngular * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDimAngular * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDimAngular * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDimAngular * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDimAngular * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDimAngular * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDimAngular * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadDimAngular * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadDimAngular * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadDimAngular * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadDimAngular * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadDimAngular * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadDimAngular * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadDimAngular * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadDimAngular * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadDimAngular * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadDimAngular * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPosition )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT *textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPosition )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRotation )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRotation )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextOverride)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOverride )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextOverride)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOverride )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DecimalSeparator)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DecimalSeparator )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DecimalSeparator)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DecimalSeparator )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGap )( 
            IGcadDimAngular * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGap )( 
            IGcadDimAngular * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrefix )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrefix )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextSuffix )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextSuffix )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_VerticalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalTextPosition )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GcDimVerticalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_VerticalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalTextPosition )( 
            IGcadDimAngular * This,
            /* [in] */ GcDimVerticalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TolerancePrecision )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TolerancePrecision )( 
            IGcadDimAngular * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceHeightScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceHeightScale )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceHeightScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceHeightScale )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceLowerLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceLowerLimit )( 
            IGcadDimAngular * This,
            /* [retval][out] */ double *lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceLowerLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceLowerLimit )( 
            IGcadDimAngular * This,
            /* [in] */ double lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextMovement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextMovement )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GcDimTextMovement *Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextMovement)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextMovement )( 
            IGcadDimAngular * This,
            /* [in] */ GcDimTextMovement Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceDisplay )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GcDimToleranceMethod *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceDisplay )( 
            IGcadDimAngular * This,
            /* [in] */ GcDimToleranceMethod method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceJustification)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceJustification )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GcDimToleranceJustify *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceJustification)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceJustification )( 
            IGcadDimAngular * This,
            /* [in] */ GcDimToleranceJustify method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceUpperLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceUpperLimit )( 
            IGcadDimAngular * This,
            /* [retval][out] */ double *upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceUpperLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceUpperLimit )( 
            IGcadDimAngular * This,
            /* [in] */ double upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadDimAngular * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadDimAngular * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressLeadingZeros )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressLeadingZeros )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressTrailingZeros )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressTrailingZeros )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressLeadingZeros )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressLeadingZeros )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressTrailingZeros )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressTrailingZeros )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFill )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFill )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFillColor )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFillColor )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DimTxtDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimTxtDirection )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *pbVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DimTxtDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimTxtDirection )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtLine1StartPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1StartPoint )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT *xLine1Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtLine1StartPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1StartPoint )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT xLine1Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtLine1EndPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1EndPoint )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT *xLine1Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtLine1EndPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1EndPoint )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT xLine1Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtLine2StartPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2StartPoint )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT *xLine2Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtLine2StartPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2StartPoint )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT xLine2Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtLine2EndPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2EndPoint )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT *xLine2Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtLine2EndPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2EndPoint )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT xLine2Point);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_AngleFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AngleFormat )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GcAngleUnits *format);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_AngleFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AngleFormat )( 
            IGcadDimAngular * This,
            /* [in] */ GcAngleUnits format);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineColor )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineColor )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineColor )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineColor )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtensionLineExtend)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineExtend )( 
            IGcadDimAngular * This,
            /* [retval][out] */ double *extend);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtensionLineExtend)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineExtend )( 
            IGcadDimAngular * This,
            /* [in] */ double extend);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_Fit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fit )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GcDimFit *fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_Fit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fit )( 
            IGcadDimAngular * This,
            /* [in] */ GcDimFit fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_HorizontalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalTextPosition )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GcDimHorizontalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_HorizontalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HorizontalTextPosition )( 
            IGcadDimAngular * This,
            /* [in] */ GcDimHorizontalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineWeight )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_LWEIGHT *lweight);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineWeight )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_LWEIGHT lweight);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimLine1Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine1Suppress )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimLine1Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine1Suppress )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimLine2Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine2Suppress )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimLine2Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine2Suppress )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtLine1Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Suppress )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtLine1Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Suppress )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtLine2Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Suppress )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtLine2Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Suppress )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLineInside )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLineInside )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_TextInsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInsideAlign )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_TextInsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInsideAlign )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_TextInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInside )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_TextInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInside )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ForceLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForceLineInside )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ForceLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForceLineInside )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_TextOutsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOutsideAlign )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_TextOutsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOutsideAlign )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_TextPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrecision )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_TextPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrecision )( 
            IGcadDimAngular * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtensionLineOffset)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineOffset )( 
            IGcadDimAngular * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtensionLineOffset)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineOffset )( 
            IGcadDimAngular * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineWeight )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_LWEIGHT *weight);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineWeight )( 
            IGcadDimAngular * This,
            /* [in] */ GCAD_LWEIGHT weight);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadDimAngular * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadDimAngular * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_Arrowhead1Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Type )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_Arrowhead1Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Type )( 
            IGcadDimAngular * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_Arrowhead2Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Type )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_Arrowhead2Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Type )( 
            IGcadDimAngular * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_Measurement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Measurement )( 
            IGcadDimAngular * This,
            /* [retval][out] */ GCAD_ANGLE *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_Arrowhead1Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Block )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_Arrowhead1Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Block )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_Arrowhead2Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Block )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_Arrowhead2Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Block )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimensionLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLinetype )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimensionLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLinetype )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtLine1Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Linetype )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtLine1Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Linetype )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtLine2Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Linetype )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtLine2Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Linetype )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtLineFixedLenSuppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLenSuppress )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtLineFixedLenSuppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLenSuppress )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_ExtLineFixedLen)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLen )( 
            IGcadDimAngular * This,
            /* [retval][out] */ double *FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_ExtLineFixedLen)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLen )( 
            IGcadDimAngular * This,
            /* [in] */ double FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimConstrForm)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrForm )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimConstrForm)
        /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrForm )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimConstrReference)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrReference )( 
            IGcadDimAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimConstrReference)
        /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrReference )( 
            IGcadDimAngular * This,
            /* [in] */ VARIANT_BOOL bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimConstrName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrName )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimConstrName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrName )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimConstrExpression)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrExpression )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimConstrExpression)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrExpression )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimConstrValue)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrValue )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *Value);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimConstrValue)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrValue )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR Value);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, get_DimConstrDesc)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrDesc )( 
            IGcadDimAngular * This,
            /* [retval][out] */ BSTR *bstrDescription);
        
        DECLSPEC_XFGVIRT(IGcadDimAngular, put_DimConstrDesc)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrDesc )( 
            IGcadDimAngular * This,
            /* [in] */ BSTR bstrDescription);
        
        END_INTERFACE
    } IGcadDimAngularVtbl;

    interface IGcadDimAngular
    {
        CONST_VTBL struct IGcadDimAngularVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDimAngular_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDimAngular_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDimAngular_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDimAngular_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDimAngular_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDimAngular_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDimAngular_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDimAngular_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDimAngular_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDimAngular_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDimAngular_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDimAngular_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDimAngular_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDimAngular_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDimAngular_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDimAngular_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDimAngular_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDimAngular_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDimAngular_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDimAngular_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDimAngular_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadDimAngular_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadDimAngular_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadDimAngular_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadDimAngular_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadDimAngular_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadDimAngular_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadDimAngular_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadDimAngular_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadDimAngular_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadDimAngular_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadDimAngular_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadDimAngular_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadDimAngular_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadDimAngular_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadDimAngular_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadDimAngular_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadDimAngular_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadDimAngular_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadDimAngular_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadDimAngular_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadDimAngular_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadDimAngular_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadDimAngular_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadDimAngular_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadDimAngular_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadDimAngular_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadDimAngular_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadDimAngular_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadDimAngular_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadDimAngular_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadDimAngular_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadDimAngular_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadDimAngular_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadDimAngular_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadDimAngular_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadDimAngular_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadDimAngular_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadDimAngular_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadDimAngular_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadDimAngular_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadDimAngular_get_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> get_TextPosition(This,textPos) ) 

#define IGcadDimAngular_put_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> put_TextPosition(This,textPos) ) 

#define IGcadDimAngular_get_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_TextRotation(This,rotAngle) ) 

#define IGcadDimAngular_put_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_TextRotation(This,rotAngle) ) 

#define IGcadDimAngular_get_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextOverride(This,bstrText) ) 

#define IGcadDimAngular_put_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextOverride(This,bstrText) ) 

#define IGcadDimAngular_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadDimAngular_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadDimAngular_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadDimAngular_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadDimAngular_get_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> get_DecimalSeparator(This,character) ) 

#define IGcadDimAngular_put_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> put_DecimalSeparator(This,character) ) 

#define IGcadDimAngular_get_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> get_TextGap(This,Offset) ) 

#define IGcadDimAngular_put_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> put_TextGap(This,Offset) ) 

#define IGcadDimAngular_get_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_TextPrefix(This,prefix) ) 

#define IGcadDimAngular_put_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_TextPrefix(This,prefix) ) 

#define IGcadDimAngular_get_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_TextSuffix(This,suffix) ) 

#define IGcadDimAngular_put_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_TextSuffix(This,suffix) ) 

#define IGcadDimAngular_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadDimAngular_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadDimAngular_get_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_VerticalTextPosition(This,Type) ) 

#define IGcadDimAngular_put_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_VerticalTextPosition(This,Type) ) 

#define IGcadDimAngular_get_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> get_TolerancePrecision(This,precision) ) 

#define IGcadDimAngular_put_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> put_TolerancePrecision(This,precision) ) 

#define IGcadDimAngular_get_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> get_ToleranceHeightScale(This,scale) ) 

#define IGcadDimAngular_put_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> put_ToleranceHeightScale(This,scale) ) 

#define IGcadDimAngular_get_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> get_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimAngular_put_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> put_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimAngular_get_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> get_TextMovement(This,Move) ) 

#define IGcadDimAngular_put_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> put_TextMovement(This,Move) ) 

#define IGcadDimAngular_get_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceDisplay(This,method) ) 

#define IGcadDimAngular_put_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceDisplay(This,method) ) 

#define IGcadDimAngular_get_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceJustification(This,method) ) 

#define IGcadDimAngular_put_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceJustification(This,method) ) 

#define IGcadDimAngular_get_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> get_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimAngular_put_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> put_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimAngular_get_TextStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextStyle(This,style) ) 

#define IGcadDimAngular_put_TextStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextStyle(This,style) ) 

#define IGcadDimAngular_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadDimAngular_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadDimAngular_get_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAngular_put_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAngular_get_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAngular_put_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAngular_get_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAngular_put_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimAngular_get_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAngular_put_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimAngular_get_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> get_TextFill(This,bVal) ) 

#define IGcadDimAngular_put_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> put_TextFill(This,bVal) ) 

#define IGcadDimAngular_get_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> get_TextFillColor(This,color) ) 

#define IGcadDimAngular_put_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> put_TextFillColor(This,color) ) 

#define IGcadDimAngular_get_DimTxtDirection(This,pbVal)	\
    ( (This)->lpVtbl -> get_DimTxtDirection(This,pbVal) ) 

#define IGcadDimAngular_put_DimTxtDirection(This,bVal)	\
    ( (This)->lpVtbl -> put_DimTxtDirection(This,bVal) ) 


#define IGcadDimAngular_get_ExtLine1StartPoint(This,xLine1Point)	\
    ( (This)->lpVtbl -> get_ExtLine1StartPoint(This,xLine1Point) ) 

#define IGcadDimAngular_put_ExtLine1StartPoint(This,xLine1Point)	\
    ( (This)->lpVtbl -> put_ExtLine1StartPoint(This,xLine1Point) ) 

#define IGcadDimAngular_get_ExtLine1EndPoint(This,xLine1Point)	\
    ( (This)->lpVtbl -> get_ExtLine1EndPoint(This,xLine1Point) ) 

#define IGcadDimAngular_put_ExtLine1EndPoint(This,xLine1Point)	\
    ( (This)->lpVtbl -> put_ExtLine1EndPoint(This,xLine1Point) ) 

#define IGcadDimAngular_get_ExtLine2StartPoint(This,xLine2Point)	\
    ( (This)->lpVtbl -> get_ExtLine2StartPoint(This,xLine2Point) ) 

#define IGcadDimAngular_put_ExtLine2StartPoint(This,xLine2Point)	\
    ( (This)->lpVtbl -> put_ExtLine2StartPoint(This,xLine2Point) ) 

#define IGcadDimAngular_get_ExtLine2EndPoint(This,xLine2Point)	\
    ( (This)->lpVtbl -> get_ExtLine2EndPoint(This,xLine2Point) ) 

#define IGcadDimAngular_put_ExtLine2EndPoint(This,xLine2Point)	\
    ( (This)->lpVtbl -> put_ExtLine2EndPoint(This,xLine2Point) ) 

#define IGcadDimAngular_get_AngleFormat(This,format)	\
    ( (This)->lpVtbl -> get_AngleFormat(This,format) ) 

#define IGcadDimAngular_put_AngleFormat(This,format)	\
    ( (This)->lpVtbl -> put_AngleFormat(This,format) ) 

#define IGcadDimAngular_get_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_DimensionLineColor(This,Type) ) 

#define IGcadDimAngular_put_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_DimensionLineColor(This,Type) ) 

#define IGcadDimAngular_get_ExtensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_ExtensionLineColor(This,Type) ) 

#define IGcadDimAngular_put_ExtensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_ExtensionLineColor(This,Type) ) 

#define IGcadDimAngular_get_ExtensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> get_ExtensionLineExtend(This,extend) ) 

#define IGcadDimAngular_put_ExtensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> put_ExtensionLineExtend(This,extend) ) 

#define IGcadDimAngular_get_Fit(This,fittype)	\
    ( (This)->lpVtbl -> get_Fit(This,fittype) ) 

#define IGcadDimAngular_put_Fit(This,fittype)	\
    ( (This)->lpVtbl -> put_Fit(This,fittype) ) 

#define IGcadDimAngular_get_HorizontalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_HorizontalTextPosition(This,Type) ) 

#define IGcadDimAngular_put_HorizontalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_HorizontalTextPosition(This,Type) ) 

#define IGcadDimAngular_get_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> get_ExtensionLineWeight(This,lweight) ) 

#define IGcadDimAngular_put_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> put_ExtensionLineWeight(This,lweight) ) 

#define IGcadDimAngular_get_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDimAngular_put_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDimAngular_get_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDimAngular_put_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDimAngular_get_ExtLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_ExtLine1Suppress(This,bSuppress) ) 

#define IGcadDimAngular_put_ExtLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_ExtLine1Suppress(This,bSuppress) ) 

#define IGcadDimAngular_get_ExtLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_ExtLine2Suppress(This,bSuppress) ) 

#define IGcadDimAngular_put_ExtLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_ExtLine2Suppress(This,bSuppress) ) 

#define IGcadDimAngular_get_DimLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_DimLineInside(This,bInside) ) 

#define IGcadDimAngular_put_DimLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_DimLineInside(This,bInside) ) 

#define IGcadDimAngular_get_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInsideAlign(This,bInside) ) 

#define IGcadDimAngular_put_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInsideAlign(This,bInside) ) 

#define IGcadDimAngular_get_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInside(This,bInside) ) 

#define IGcadDimAngular_put_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInside(This,bInside) ) 

#define IGcadDimAngular_get_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_ForceLineInside(This,bInside) ) 

#define IGcadDimAngular_put_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_ForceLineInside(This,bInside) ) 

#define IGcadDimAngular_get_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextOutsideAlign(This,bInside) ) 

#define IGcadDimAngular_put_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextOutsideAlign(This,bInside) ) 

#define IGcadDimAngular_get_TextPrecision(This,precision)	\
    ( (This)->lpVtbl -> get_TextPrecision(This,precision) ) 

#define IGcadDimAngular_put_TextPrecision(This,precision)	\
    ( (This)->lpVtbl -> put_TextPrecision(This,precision) ) 

#define IGcadDimAngular_get_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> get_ExtensionLineOffset(This,Offset) ) 

#define IGcadDimAngular_put_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> put_ExtensionLineOffset(This,Offset) ) 

#define IGcadDimAngular_get_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> get_DimensionLineWeight(This,weight) ) 

#define IGcadDimAngular_put_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> put_DimensionLineWeight(This,weight) ) 

#define IGcadDimAngular_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadDimAngular_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadDimAngular_get_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead1Type(This,Type) ) 

#define IGcadDimAngular_put_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead1Type(This,Type) ) 

#define IGcadDimAngular_get_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead2Type(This,Type) ) 

#define IGcadDimAngular_put_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead2Type(This,Type) ) 

#define IGcadDimAngular_get_Measurement(This,bVal)	\
    ( (This)->lpVtbl -> get_Measurement(This,bVal) ) 

#define IGcadDimAngular_get_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead1Block(This,BlockName) ) 

#define IGcadDimAngular_put_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead1Block(This,BlockName) ) 

#define IGcadDimAngular_get_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead2Block(This,BlockName) ) 

#define IGcadDimAngular_put_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead2Block(This,BlockName) ) 

#define IGcadDimAngular_get_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_DimensionLinetype(This,Linetype) ) 

#define IGcadDimAngular_put_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_DimensionLinetype(This,Linetype) ) 

#define IGcadDimAngular_get_ExtLine1Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ExtLine1Linetype(This,Linetype) ) 

#define IGcadDimAngular_put_ExtLine1Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ExtLine1Linetype(This,Linetype) ) 

#define IGcadDimAngular_get_ExtLine2Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ExtLine2Linetype(This,Linetype) ) 

#define IGcadDimAngular_put_ExtLine2Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ExtLine2Linetype(This,Linetype) ) 

#define IGcadDimAngular_get_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDimAngular_put_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDimAngular_get_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDimAngular_put_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDimAngular_get_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> get_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDimAngular_put_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> put_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDimAngular_get_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> get_DimConstrReference(This,bIsReference) ) 

#define IGcadDimAngular_put_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> put_DimConstrReference(This,bIsReference) ) 

#define IGcadDimAngular_get_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> get_DimConstrName(This,bstrName) ) 

#define IGcadDimAngular_put_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> put_DimConstrName(This,bstrName) ) 

#define IGcadDimAngular_get_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> get_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDimAngular_put_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> put_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDimAngular_get_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> get_DimConstrValue(This,Value) ) 

#define IGcadDimAngular_put_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> put_DimConstrValue(This,Value) ) 

#define IGcadDimAngular_get_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> get_DimConstrDesc(This,bstrDescription) ) 

#define IGcadDimAngular_put_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> put_DimConstrDesc(This,bstrDescription) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ExtensionLineColor_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ GCAD_COLOR Type);


void __RPC_STUB IGcadDimAngular_put_ExtensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_ExtensionLineExtend_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ double *extend);


void __RPC_STUB IGcadDimAngular_get_ExtensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ExtensionLineExtend_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ double extend);


void __RPC_STUB IGcadDimAngular_put_ExtensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_Fit_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ GcDimFit *fittype);


void __RPC_STUB IGcadDimAngular_get_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_Fit_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ GcDimFit fittype);


void __RPC_STUB IGcadDimAngular_put_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_HorizontalTextPosition_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ GcDimHorizontalJustification *Type);


void __RPC_STUB IGcadDimAngular_get_HorizontalTextPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_HorizontalTextPosition_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ GcDimHorizontalJustification Type);


void __RPC_STUB IGcadDimAngular_put_HorizontalTextPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_ExtensionLineWeight_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ GCAD_LWEIGHT *lweight);


void __RPC_STUB IGcadDimAngular_get_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ExtensionLineWeight_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ GCAD_LWEIGHT lweight);


void __RPC_STUB IGcadDimAngular_put_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_DimLine1Suppress_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimAngular_get_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_DimLine1Suppress_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimAngular_put_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_DimLine2Suppress_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimAngular_get_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_DimLine2Suppress_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimAngular_put_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_ExtLine1Suppress_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimAngular_get_ExtLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ExtLine1Suppress_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimAngular_put_ExtLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_ExtLine2Suppress_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimAngular_get_ExtLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ExtLine2Suppress_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimAngular_put_ExtLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_DimLineInside_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimAngular_get_DimLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_DimLineInside_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimAngular_put_DimLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_TextInsideAlign_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimAngular_get_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_TextInsideAlign_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimAngular_put_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_TextInside_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimAngular_get_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_TextInside_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimAngular_put_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_ForceLineInside_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimAngular_get_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ForceLineInside_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimAngular_put_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_TextOutsideAlign_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimAngular_get_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_TextOutsideAlign_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimAngular_put_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_TextPrecision_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ GcDimPrecision *precision);


void __RPC_STUB IGcadDimAngular_get_TextPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_TextPrecision_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ GcDimPrecision precision);


void __RPC_STUB IGcadDimAngular_put_TextPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_ExtensionLineOffset_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ double *Offset);


void __RPC_STUB IGcadDimAngular_get_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ExtensionLineOffset_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ double Offset);


void __RPC_STUB IGcadDimAngular_put_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_DimensionLineWeight_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ GCAD_LWEIGHT *weight);


void __RPC_STUB IGcadDimAngular_get_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_DimensionLineWeight_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ GCAD_LWEIGHT weight);


void __RPC_STUB IGcadDimAngular_put_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_ArrowheadSize_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ double *size);


void __RPC_STUB IGcadDimAngular_get_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ArrowheadSize_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ double size);


void __RPC_STUB IGcadDimAngular_put_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_Arrowhead1Type_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimAngular_get_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_Arrowhead1Type_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimAngular_put_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_Arrowhead2Type_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimAngular_get_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_Arrowhead2Type_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimAngular_put_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_Measurement_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ GCAD_ANGLE *bVal);


void __RPC_STUB IGcadDimAngular_get_Measurement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_Arrowhead1Block_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimAngular_get_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_Arrowhead1Block_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimAngular_put_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_Arrowhead2Block_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimAngular_get_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_Arrowhead2Block_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimAngular_put_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_DimensionLinetype_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimAngular_get_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_DimensionLinetype_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimAngular_put_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_ExtLine1Linetype_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimAngular_get_ExtLine1Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ExtLine1Linetype_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimAngular_put_ExtLine1Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_ExtLine2Linetype_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimAngular_get_ExtLine2Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ExtLine2Linetype_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimAngular_put_ExtLine2Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_ExtLineFixedLenSuppress_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bFixedLen);


void __RPC_STUB IGcadDimAngular_get_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ExtLineFixedLenSuppress_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bFixedLen);


void __RPC_STUB IGcadDimAngular_put_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_ExtLineFixedLen_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ double *FixedLen);


void __RPC_STUB IGcadDimAngular_get_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_ExtLineFixedLen_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ double FixedLen);


void __RPC_STUB IGcadDimAngular_put_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_DimConstrForm_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bIsDynamic);


void __RPC_STUB IGcadDimAngular_get_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_DimConstrForm_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bIsDynamic);


void __RPC_STUB IGcadDimAngular_put_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_DimConstrReference_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bIsReference);


void __RPC_STUB IGcadDimAngular_get_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_DimConstrReference_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ VARIANT_BOOL bIsReference);


void __RPC_STUB IGcadDimAngular_put_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_DimConstrName_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ BSTR *bstrName);


void __RPC_STUB IGcadDimAngular_get_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_DimConstrName_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ BSTR bstrName);


void __RPC_STUB IGcadDimAngular_put_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_DimConstrExpression_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ BSTR *bstrExpression);


void __RPC_STUB IGcadDimAngular_get_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_DimConstrExpression_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ BSTR bstrExpression);


void __RPC_STUB IGcadDimAngular_put_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_DimConstrValue_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ BSTR *Value);


void __RPC_STUB IGcadDimAngular_get_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_DimConstrValue_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ BSTR Value);


void __RPC_STUB IGcadDimAngular_put_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_get_DimConstrDesc_Proxy( 
    IGcadDimAngular * This,
    /* [retval][out] */ BSTR *bstrDescription);


void __RPC_STUB IGcadDimAngular_get_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimAngular_put_DimConstrDesc_Proxy( 
    IGcadDimAngular * This,
    /* [in] */ BSTR bstrDescription);


void __RPC_STUB IGcadDimAngular_put_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGcadDimAngular_INTERFACE_DEFINED__ */


#ifndef __IGcadDimDiametric_INTERFACE_DEFINED__
#define __IGcadDimDiametric_INTERFACE_DEFINED__

/* interface IGcadDimDiametric */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDimDiametric;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CF7DAB54-2669-4E42-B5A5-297B0154CE04")
    IGcadDimDiametric : public IGcadDimension
    {
    public:
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLength( 
            /* [in] */ double rhs) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnits( 
            /* [retval][out] */ VARIANT_BOOL *bAlternate) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnits( 
            /* [in] */ VARIANT_BOOL bAlternate) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *precision) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsPrecision( 
            /* [in] */ GcDimPrecision precision) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsScale( 
            /* [retval][out] */ GCAD_NOUNITS *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsScale( 
            /* [in] */ GCAD_NOUNITS scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltRoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltRoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTolerancePrecision( 
            /* [retval][out] */ GcDimPrecision *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTolerancePrecision( 
            /* [in] */ GcDimPrecision Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsFormat( 
            /* [retval][out] */ GcDimUnits *Units) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsFormat( 
            /* [in] */ GcDimUnits Units) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextPrefix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextPrefix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextSuffix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextSuffix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PrimaryUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *Prec) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PrimaryUnitsPrecision( 
            /* [in] */ GcDimPrecision Prec) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FractionFormat( 
            /* [retval][out] */ GcDimFractionType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FractionFormat( 
            /* [in] */ GcDimFractionType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Fit( 
            /* [retval][out] */ GcDimFit *fittype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Fit( 
            /* [in] */ GcDimFit fittype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LinearScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LinearScaleFactor( 
            /* [in] */ GCAD_NOUNITS Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnitsFormat( 
            /* [retval][out] */ GcDimLUnits *format) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UnitsFormat( 
            /* [in] */ GcDimLUnits format) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine1Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine1Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine2Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine2Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForceLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForceLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextOutsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextOutsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CenterType( 
            /* [retval][out] */ GcDimCenterType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CenterType( 
            /* [in] */ GcDimCenterType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CenterMarkSize( 
            /* [retval][out] */ double *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CenterMarkSize( 
            /* [in] */ double Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *weight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT weight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Measurement( 
            /* [retval][out] */ double *bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrForm( 
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic) = 0;
        
        virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrForm( 
            /* [in] */ VARIANT_BOOL bIsDynamic) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrReference( 
            /* [retval][out] */ VARIANT_BOOL *bIsReference) = 0;
        
        virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrReference( 
            /* [in] */ VARIANT_BOOL bIsReference) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrExpression( 
            /* [retval][out] */ BSTR *bstrExpression) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrExpression( 
            /* [in] */ BSTR bstrExpression) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrValue( 
            /* [retval][out] */ BSTR *Value) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrValue( 
            /* [in] */ BSTR Value) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrDesc( 
            /* [retval][out] */ BSTR *bstrDescription) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrDesc( 
            /* [in] */ BSTR bstrDescription) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDimDiametricVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDimDiametric * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDimDiametric * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDimDiametric * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDimDiametric * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDimDiametric * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDimDiametric * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDimDiametric * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDimDiametric * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDimDiametric * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadDimDiametric * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadDimDiametric * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadDimDiametric * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadDimDiametric * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadDimDiametric * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadDimDiametric * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPosition )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT *textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPosition )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRotation )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRotation )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextOverride)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOverride )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextOverride)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOverride )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DecimalSeparator)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DecimalSeparator )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DecimalSeparator)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DecimalSeparator )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGap )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGap )( 
            IGcadDimDiametric * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrefix )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrefix )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextSuffix )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextSuffix )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_VerticalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalTextPosition )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimVerticalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_VerticalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalTextPosition )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimVerticalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TolerancePrecision )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TolerancePrecision )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceHeightScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceHeightScale )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceHeightScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceHeightScale )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceLowerLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceLowerLimit )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ double *lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceLowerLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceLowerLimit )( 
            IGcadDimDiametric * This,
            /* [in] */ double lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextMovement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextMovement )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimTextMovement *Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextMovement)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextMovement )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimTextMovement Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceDisplay )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimToleranceMethod *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceDisplay )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimToleranceMethod method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceJustification)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceJustification )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimToleranceJustify *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceJustification)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceJustification )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimToleranceJustify method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceUpperLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceUpperLimit )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ double *upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceUpperLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceUpperLimit )( 
            IGcadDimDiametric * This,
            /* [in] */ double upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadDimDiametric * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressLeadingZeros )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressLeadingZeros )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressTrailingZeros )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressTrailingZeros )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressLeadingZeros )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressLeadingZeros )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressTrailingZeros )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressTrailingZeros )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFill )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFill )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFillColor )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFillColor )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DimTxtDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimTxtDirection )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *pbVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DimTxtDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimTxtDirection )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_LeaderLength)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLength )( 
            IGcadDimDiametric * This,
            /* [in] */ double rhs);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnits )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltUnits)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnits )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsPrecision )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsPrecision )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltUnitsScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsScale )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltUnitsScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsScale )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltRoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltRoundDistance )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltRoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltRoundDistance )( 
            IGcadDimDiametric * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltTolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTolerancePrecision )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimPrecision *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltTolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTolerancePrecision )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimPrecision Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltUnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsFormat )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimUnits *Units);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltUnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsFormat )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimUnits Units);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltTextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextPrefix )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltTextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextPrefix )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltTextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextSuffix )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltTextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextSuffix )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_DimensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineColor )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_DimensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineColor )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_PrimaryUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrimaryUnitsPrecision )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimPrecision *Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_PrimaryUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PrimaryUnitsPrecision )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimPrecision Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_FractionFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FractionFormat )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimFractionType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_FractionFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FractionFormat )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimFractionType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_Fit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fit )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimFit *fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_Fit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fit )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimFit fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_LinearScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinearScaleFactor )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_NOUNITS *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_LinearScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinearScaleFactor )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_NOUNITS Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_UnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnitsFormat )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimLUnits *format);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_UnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnitsFormat )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimLUnits format);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_RoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RoundDistance )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_RoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RoundDistance )( 
            IGcadDimDiametric * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_DimLine1Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine1Suppress )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_DimLine1Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine1Suppress )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_DimLine2Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine2Suppress )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_DimLine2Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine2Suppress )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_TextInsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInsideAlign )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_TextInsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInsideAlign )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_TextInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInside )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_TextInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInside )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_ForceLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForceLineInside )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_ForceLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForceLineInside )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_TextOutsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOutsideAlign )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_TextOutsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOutsideAlign )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_CenterType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CenterType )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimCenterType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_CenterType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CenterType )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimCenterType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_CenterMarkSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CenterMarkSize )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ double *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_CenterMarkSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CenterMarkSize )( 
            IGcadDimDiametric * This,
            /* [in] */ double Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressLeadingZeros )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressLeadingZeros )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressTrailingZeros )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressTrailingZeros )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroFeet )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroFeet )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroInches )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroInches )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressLeadingZeros )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressLeadingZeros )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressTrailingZeros )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressTrailingZeros )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroFeet )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroFeet )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_AltToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroInches )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_AltToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroInches )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_SuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroFeet )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_SuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroFeet )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_SuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroInches )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_SuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroInches )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_ToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroFeet )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_ToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroFeet )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_ToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroInches )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_ToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroInches )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_DimensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineWeight )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GCAD_LWEIGHT *weight);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_DimensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineWeight )( 
            IGcadDimDiametric * This,
            /* [in] */ GCAD_LWEIGHT weight);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadDimDiametric * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_Arrowhead1Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Type )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_Arrowhead1Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Type )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_Arrowhead2Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Type )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_Arrowhead2Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Type )( 
            IGcadDimDiametric * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_Measurement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Measurement )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ double *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_Arrowhead1Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Block )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_Arrowhead1Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Block )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_Arrowhead2Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Block )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_Arrowhead2Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Block )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_DimensionLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLinetype )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_DimensionLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLinetype )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_DimConstrForm)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrForm )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_DimConstrForm)
        /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrForm )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_DimConstrReference)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrReference )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ VARIANT_BOOL *bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_DimConstrReference)
        /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrReference )( 
            IGcadDimDiametric * This,
            /* [in] */ VARIANT_BOOL bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_DimConstrName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrName )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_DimConstrName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrName )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_DimConstrExpression)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrExpression )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_DimConstrExpression)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrExpression )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_DimConstrValue)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrValue )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *Value);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_DimConstrValue)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrValue )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR Value);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, get_DimConstrDesc)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrDesc )( 
            IGcadDimDiametric * This,
            /* [retval][out] */ BSTR *bstrDescription);
        
        DECLSPEC_XFGVIRT(IGcadDimDiametric, put_DimConstrDesc)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrDesc )( 
            IGcadDimDiametric * This,
            /* [in] */ BSTR bstrDescription);
        
        END_INTERFACE
    } IGcadDimDiametricVtbl;

    interface IGcadDimDiametric
    {
        CONST_VTBL struct IGcadDimDiametricVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDimDiametric_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDimDiametric_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDimDiametric_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDimDiametric_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDimDiametric_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDimDiametric_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDimDiametric_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDimDiametric_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDimDiametric_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDimDiametric_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDimDiametric_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDimDiametric_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDimDiametric_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDimDiametric_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDimDiametric_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDimDiametric_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDimDiametric_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDimDiametric_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDimDiametric_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDimDiametric_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDimDiametric_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadDimDiametric_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadDimDiametric_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadDimDiametric_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadDimDiametric_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadDimDiametric_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadDimDiametric_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadDimDiametric_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadDimDiametric_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadDimDiametric_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadDimDiametric_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadDimDiametric_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadDimDiametric_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadDimDiametric_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadDimDiametric_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadDimDiametric_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadDimDiametric_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadDimDiametric_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadDimDiametric_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadDimDiametric_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadDimDiametric_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadDimDiametric_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadDimDiametric_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadDimDiametric_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadDimDiametric_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadDimDiametric_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadDimDiametric_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadDimDiametric_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadDimDiametric_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadDimDiametric_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadDimDiametric_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadDimDiametric_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadDimDiametric_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadDimDiametric_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadDimDiametric_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadDimDiametric_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadDimDiametric_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadDimDiametric_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadDimDiametric_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadDimDiametric_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadDimDiametric_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadDimDiametric_get_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> get_TextPosition(This,textPos) ) 

#define IGcadDimDiametric_put_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> put_TextPosition(This,textPos) ) 

#define IGcadDimDiametric_get_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_TextRotation(This,rotAngle) ) 

#define IGcadDimDiametric_put_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_TextRotation(This,rotAngle) ) 

#define IGcadDimDiametric_get_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextOverride(This,bstrText) ) 

#define IGcadDimDiametric_put_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextOverride(This,bstrText) ) 

#define IGcadDimDiametric_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadDimDiametric_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadDimDiametric_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadDimDiametric_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadDimDiametric_get_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> get_DecimalSeparator(This,character) ) 

#define IGcadDimDiametric_put_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> put_DecimalSeparator(This,character) ) 

#define IGcadDimDiametric_get_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> get_TextGap(This,Offset) ) 

#define IGcadDimDiametric_put_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> put_TextGap(This,Offset) ) 

#define IGcadDimDiametric_get_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_TextPrefix(This,prefix) ) 

#define IGcadDimDiametric_put_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_TextPrefix(This,prefix) ) 

#define IGcadDimDiametric_get_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_TextSuffix(This,suffix) ) 

#define IGcadDimDiametric_put_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_TextSuffix(This,suffix) ) 

#define IGcadDimDiametric_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadDimDiametric_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadDimDiametric_get_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_VerticalTextPosition(This,Type) ) 

#define IGcadDimDiametric_put_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_VerticalTextPosition(This,Type) ) 

#define IGcadDimDiametric_get_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> get_TolerancePrecision(This,precision) ) 

#define IGcadDimDiametric_put_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> put_TolerancePrecision(This,precision) ) 

#define IGcadDimDiametric_get_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> get_ToleranceHeightScale(This,scale) ) 

#define IGcadDimDiametric_put_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> put_ToleranceHeightScale(This,scale) ) 

#define IGcadDimDiametric_get_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> get_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimDiametric_put_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> put_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimDiametric_get_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> get_TextMovement(This,Move) ) 

#define IGcadDimDiametric_put_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> put_TextMovement(This,Move) ) 

#define IGcadDimDiametric_get_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceDisplay(This,method) ) 

#define IGcadDimDiametric_put_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceDisplay(This,method) ) 

#define IGcadDimDiametric_get_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceJustification(This,method) ) 

#define IGcadDimDiametric_put_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceJustification(This,method) ) 

#define IGcadDimDiametric_get_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> get_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimDiametric_put_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> put_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimDiametric_get_TextStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextStyle(This,style) ) 

#define IGcadDimDiametric_put_TextStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextStyle(This,style) ) 

#define IGcadDimDiametric_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadDimDiametric_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadDimDiametric_get_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimDiametric_put_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimDiametric_get_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimDiametric_put_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimDiametric_get_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimDiametric_put_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimDiametric_get_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimDiametric_put_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimDiametric_get_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> get_TextFill(This,bVal) ) 

#define IGcadDimDiametric_put_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> put_TextFill(This,bVal) ) 

#define IGcadDimDiametric_get_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> get_TextFillColor(This,color) ) 

#define IGcadDimDiametric_put_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> put_TextFillColor(This,color) ) 

#define IGcadDimDiametric_get_DimTxtDirection(This,pbVal)	\
    ( (This)->lpVtbl -> get_DimTxtDirection(This,pbVal) ) 

#define IGcadDimDiametric_put_DimTxtDirection(This,bVal)	\
    ( (This)->lpVtbl -> put_DimTxtDirection(This,bVal) ) 


#define IGcadDimDiametric_put_LeaderLength(This,rhs)	\
    ( (This)->lpVtbl -> put_LeaderLength(This,rhs) ) 

#define IGcadDimDiametric_get_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> get_AltUnits(This,bAlternate) ) 

#define IGcadDimDiametric_put_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> put_AltUnits(This,bAlternate) ) 

#define IGcadDimDiametric_get_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> get_AltUnitsPrecision(This,precision) ) 

#define IGcadDimDiametric_put_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> put_AltUnitsPrecision(This,precision) ) 

#define IGcadDimDiametric_get_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> get_AltUnitsScale(This,scale) ) 

#define IGcadDimDiametric_put_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> put_AltUnitsScale(This,scale) ) 

#define IGcadDimDiametric_get_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_AltRoundDistance(This,Distance) ) 

#define IGcadDimDiametric_put_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_AltRoundDistance(This,Distance) ) 

#define IGcadDimDiametric_get_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> get_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimDiametric_put_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> put_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimDiametric_get_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> get_AltUnitsFormat(This,Units) ) 

#define IGcadDimDiametric_put_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> put_AltUnitsFormat(This,Units) ) 

#define IGcadDimDiametric_get_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextPrefix(This,prefix) ) 

#define IGcadDimDiametric_put_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextPrefix(This,prefix) ) 

#define IGcadDimDiametric_get_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextSuffix(This,prefix) ) 

#define IGcadDimDiametric_put_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextSuffix(This,prefix) ) 

#define IGcadDimDiametric_get_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_DimensionLineColor(This,Type) ) 

#define IGcadDimDiametric_put_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_DimensionLineColor(This,Type) ) 

#define IGcadDimDiametric_get_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> get_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimDiametric_put_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> put_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimDiametric_get_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> get_FractionFormat(This,Type) ) 

#define IGcadDimDiametric_put_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> put_FractionFormat(This,Type) ) 

#define IGcadDimDiametric_get_Fit(This,fittype)	\
    ( (This)->lpVtbl -> get_Fit(This,fittype) ) 

#define IGcadDimDiametric_put_Fit(This,fittype)	\
    ( (This)->lpVtbl -> put_Fit(This,fittype) ) 

#define IGcadDimDiametric_get_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> get_LinearScaleFactor(This,Type) ) 

#define IGcadDimDiametric_put_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> put_LinearScaleFactor(This,Type) ) 

#define IGcadDimDiametric_get_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> get_UnitsFormat(This,format) ) 

#define IGcadDimDiametric_put_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> put_UnitsFormat(This,format) ) 

#define IGcadDimDiametric_get_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_RoundDistance(This,Distance) ) 

#define IGcadDimDiametric_put_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_RoundDistance(This,Distance) ) 

#define IGcadDimDiametric_get_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDimDiametric_put_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDimDiametric_get_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDimDiametric_put_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDimDiametric_get_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInsideAlign(This,bInside) ) 

#define IGcadDimDiametric_put_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInsideAlign(This,bInside) ) 

#define IGcadDimDiametric_get_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInside(This,bInside) ) 

#define IGcadDimDiametric_put_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInside(This,bInside) ) 

#define IGcadDimDiametric_get_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_ForceLineInside(This,bInside) ) 

#define IGcadDimDiametric_put_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_ForceLineInside(This,bInside) ) 

#define IGcadDimDiametric_get_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextOutsideAlign(This,bInside) ) 

#define IGcadDimDiametric_put_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextOutsideAlign(This,bInside) ) 

#define IGcadDimDiametric_get_CenterType(This,Type)	\
    ( (This)->lpVtbl -> get_CenterType(This,Type) ) 

#define IGcadDimDiametric_put_CenterType(This,Type)	\
    ( (This)->lpVtbl -> put_CenterType(This,Type) ) 

#define IGcadDimDiametric_get_CenterMarkSize(This,Type)	\
    ( (This)->lpVtbl -> get_CenterMarkSize(This,Type) ) 

#define IGcadDimDiametric_put_CenterMarkSize(This,Type)	\
    ( (This)->lpVtbl -> put_CenterMarkSize(This,Type) ) 

#define IGcadDimDiametric_get_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimDiametric_put_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimDiametric_get_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimDiametric_put_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimDiametric_get_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimDiametric_put_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimDiametric_get_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimDiametric_put_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimDiametric_get_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimDiametric_put_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimDiametric_get_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimDiametric_put_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimDiametric_get_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimDiametric_put_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimDiametric_get_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimDiametric_put_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimDiametric_get_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimDiametric_put_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimDiametric_get_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroInches(This,bVal) ) 

#define IGcadDimDiametric_put_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroInches(This,bVal) ) 

#define IGcadDimDiametric_get_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimDiametric_put_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimDiametric_get_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimDiametric_put_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimDiametric_get_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> get_DimensionLineWeight(This,weight) ) 

#define IGcadDimDiametric_put_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> put_DimensionLineWeight(This,weight) ) 

#define IGcadDimDiametric_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadDimDiametric_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadDimDiametric_get_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead1Type(This,Type) ) 

#define IGcadDimDiametric_put_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead1Type(This,Type) ) 

#define IGcadDimDiametric_get_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead2Type(This,Type) ) 

#define IGcadDimDiametric_put_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead2Type(This,Type) ) 

#define IGcadDimDiametric_get_Measurement(This,bVal)	\
    ( (This)->lpVtbl -> get_Measurement(This,bVal) ) 

#define IGcadDimDiametric_get_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead1Block(This,BlockName) ) 

#define IGcadDimDiametric_put_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead1Block(This,BlockName) ) 

#define IGcadDimDiametric_get_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead2Block(This,BlockName) ) 

#define IGcadDimDiametric_put_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead2Block(This,BlockName) ) 

#define IGcadDimDiametric_get_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_DimensionLinetype(This,Linetype) ) 

#define IGcadDimDiametric_put_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_DimensionLinetype(This,Linetype) ) 

#define IGcadDimDiametric_get_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> get_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDimDiametric_put_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> put_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDimDiametric_get_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> get_DimConstrReference(This,bIsReference) ) 

#define IGcadDimDiametric_put_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> put_DimConstrReference(This,bIsReference) ) 

#define IGcadDimDiametric_get_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> get_DimConstrName(This,bstrName) ) 

#define IGcadDimDiametric_put_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> put_DimConstrName(This,bstrName) ) 

#define IGcadDimDiametric_get_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> get_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDimDiametric_put_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> put_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDimDiametric_get_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> get_DimConstrValue(This,Value) ) 

#define IGcadDimDiametric_put_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> put_DimConstrValue(This,Value) ) 

#define IGcadDimDiametric_get_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> get_DimConstrDesc(This,bstrDescription) ) 

#define IGcadDimDiametric_put_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> put_DimConstrDesc(This,bstrDescription) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_AltTextPrefix_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ BSTR *prefix);


void __RPC_STUB IGcadDimDiametric_get_AltTextPrefix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_AltTextPrefix_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimDiametric_put_AltTextPrefix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_AltTextSuffix_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ BSTR *prefix);


void __RPC_STUB IGcadDimDiametric_get_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_AltTextSuffix_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimDiametric_put_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_DimensionLineColor_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ GCAD_COLOR *Type);


void __RPC_STUB IGcadDimDiametric_get_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_DimensionLineColor_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ GCAD_COLOR Type);


void __RPC_STUB IGcadDimDiametric_put_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_PrimaryUnitsPrecision_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ GcDimPrecision *Prec);


void __RPC_STUB IGcadDimDiametric_get_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_PrimaryUnitsPrecision_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ GcDimPrecision Prec);


void __RPC_STUB IGcadDimDiametric_put_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_FractionFormat_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ GcDimFractionType *Type);


void __RPC_STUB IGcadDimDiametric_get_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_FractionFormat_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ GcDimFractionType Type);


void __RPC_STUB IGcadDimDiametric_put_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_Fit_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ GcDimFit *fittype);


void __RPC_STUB IGcadDimDiametric_get_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_Fit_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ GcDimFit fittype);


void __RPC_STUB IGcadDimDiametric_put_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_LinearScaleFactor_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ GCAD_NOUNITS *Type);


void __RPC_STUB IGcadDimDiametric_get_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_LinearScaleFactor_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ GCAD_NOUNITS Type);


void __RPC_STUB IGcadDimDiametric_put_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_UnitsFormat_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ GcDimLUnits *format);


void __RPC_STUB IGcadDimDiametric_get_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_UnitsFormat_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ GcDimLUnits format);


void __RPC_STUB IGcadDimDiametric_put_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_RoundDistance_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ double *Distance);


void __RPC_STUB IGcadDimDiametric_get_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_RoundDistance_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ double Distance);


void __RPC_STUB IGcadDimDiametric_put_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_DimLine1Suppress_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimDiametric_get_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_DimLine1Suppress_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimDiametric_put_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_DimLine2Suppress_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimDiametric_get_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_DimLine2Suppress_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimDiametric_put_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_TextInsideAlign_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimDiametric_get_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_TextInsideAlign_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimDiametric_put_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_TextInside_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimDiametric_get_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_TextInside_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimDiametric_put_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_ForceLineInside_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimDiametric_get_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_ForceLineInside_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimDiametric_put_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_TextOutsideAlign_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimDiametric_get_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_TextOutsideAlign_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimDiametric_put_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_CenterType_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ GcDimCenterType *Type);


void __RPC_STUB IGcadDimDiametric_get_CenterType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_CenterType_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ GcDimCenterType Type);


void __RPC_STUB IGcadDimDiametric_put_CenterType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_CenterMarkSize_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ double *Type);


void __RPC_STUB IGcadDimDiametric_get_CenterMarkSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_CenterMarkSize_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ double Type);


void __RPC_STUB IGcadDimDiametric_put_CenterMarkSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_AltSuppressLeadingZeros_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_AltSuppressLeadingZeros_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_AltSuppressTrailingZeros_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_AltSuppressTrailingZeros_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_AltSuppressZeroFeet_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_AltSuppressZeroFeet_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_AltSuppressZeroInches_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_AltSuppressZeroInches_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_SuppressZeroFeet_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_SuppressZeroFeet_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_SuppressZeroInches_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_SuppressZeroInches_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimDiametric_get_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimDiametric_put_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_DimensionLineWeight_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ GCAD_LWEIGHT *weight);


void __RPC_STUB IGcadDimDiametric_get_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_DimensionLineWeight_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ GCAD_LWEIGHT weight);


void __RPC_STUB IGcadDimDiametric_put_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_ArrowheadSize_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ double *size);


void __RPC_STUB IGcadDimDiametric_get_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_ArrowheadSize_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ double size);


void __RPC_STUB IGcadDimDiametric_put_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_Arrowhead1Type_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimDiametric_get_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_Arrowhead1Type_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimDiametric_put_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_Arrowhead2Type_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimDiametric_get_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_Arrowhead2Type_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimDiametric_put_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_Measurement_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ double *bVal);


void __RPC_STUB IGcadDimDiametric_get_Measurement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_Arrowhead1Block_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimDiametric_get_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_Arrowhead1Block_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimDiametric_put_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_Arrowhead2Block_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimDiametric_get_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_Arrowhead2Block_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimDiametric_put_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_DimensionLinetype_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimDiametric_get_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_DimensionLinetype_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimDiametric_put_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_DimConstrForm_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bIsDynamic);


void __RPC_STUB IGcadDimDiametric_get_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_DimConstrForm_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bIsDynamic);


void __RPC_STUB IGcadDimDiametric_put_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_DimConstrReference_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ VARIANT_BOOL *bIsReference);


void __RPC_STUB IGcadDimDiametric_get_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_DimConstrReference_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ VARIANT_BOOL bIsReference);


void __RPC_STUB IGcadDimDiametric_put_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_DimConstrName_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ BSTR *bstrName);


void __RPC_STUB IGcadDimDiametric_get_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_DimConstrName_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ BSTR bstrName);


void __RPC_STUB IGcadDimDiametric_put_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_DimConstrExpression_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ BSTR *bstrExpression);


void __RPC_STUB IGcadDimDiametric_get_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_DimConstrExpression_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ BSTR bstrExpression);


void __RPC_STUB IGcadDimDiametric_put_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_DimConstrValue_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ BSTR *Value);


void __RPC_STUB IGcadDimDiametric_get_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_DimConstrValue_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ BSTR Value);


void __RPC_STUB IGcadDimDiametric_put_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_get_DimConstrDesc_Proxy( 
    IGcadDimDiametric * This,
    /* [retval][out] */ BSTR *bstrDescription);


void __RPC_STUB IGcadDimDiametric_get_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimDiametric_put_DimConstrDesc_Proxy( 
    IGcadDimDiametric * This,
    /* [in] */ BSTR bstrDescription);


void __RPC_STUB IGcadDimDiametric_put_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGcadDimDiametric_INTERFACE_DEFINED__ */


#ifndef __IGcadDimRotated_INTERFACE_DEFINED__
#define __IGcadDimRotated_INTERFACE_DEFINED__

/* interface IGcadDimRotated */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDimRotated;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BFA28400-5AA8-4322-950A-CB92AD2EBCE5")
    IGcadDimRotated : public IGcadDimension
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnits( 
            /* [retval][out] */ VARIANT_BOOL *bAlternate) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnits( 
            /* [in] */ VARIANT_BOOL bAlternate) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *precision) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsPrecision( 
            /* [in] */ GcDimPrecision precision) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsScale( 
            /* [retval][out] */ GCAD_NOUNITS *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsScale( 
            /* [in] */ GCAD_NOUNITS scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltRoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltRoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTolerancePrecision( 
            /* [retval][out] */ GcDimPrecision *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTolerancePrecision( 
            /* [in] */ GcDimPrecision Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsFormat( 
            /* [retval][out] */ GcDimUnits *Units) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsFormat( 
            /* [in] */ GcDimUnits Units) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextPrefix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextPrefix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextSuffix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextSuffix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PrimaryUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *Prec) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PrimaryUnitsPrecision( 
            /* [in] */ GcDimPrecision Prec) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineExtend( 
            /* [retval][out] */ double *extend) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineExtend( 
            /* [in] */ double extend) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineExtend( 
            /* [retval][out] */ double *extend) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineExtend( 
            /* [in] */ double extend) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Fit( 
            /* [retval][out] */ GcDimFit *fittype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Fit( 
            /* [in] */ GcDimFit fittype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FractionFormat( 
            /* [retval][out] */ GcDimFractionType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FractionFormat( 
            /* [in] */ GcDimFractionType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalTextPosition( 
            /* [retval][out] */ GcDimHorizontalJustification *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HorizontalTextPosition( 
            /* [in] */ GcDimHorizontalJustification Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LinearScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LinearScaleFactor( 
            /* [in] */ GCAD_NOUNITS Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnitsFormat( 
            /* [retval][out] */ GcDimLUnits *format) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UnitsFormat( 
            /* [in] */ GcDimLUnits format) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *lweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT lweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine1Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine1Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine2Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine2Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForceLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForceLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextOutsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextOutsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineOffset( 
            /* [retval][out] */ double *Offset) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineOffset( 
            /* [in] */ double Offset) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *weight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT weight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Measurement( 
            /* [retval][out] */ double *bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLenSuppress( 
            /* [retval][out] */ VARIANT_BOOL *bFixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLenSuppress( 
            /* [in] */ VARIANT_BOOL bFixedLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLen( 
            /* [retval][out] */ double *FixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLen( 
            /* [in] */ double FixedLen) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrForm( 
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic) = 0;
        
        virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrForm( 
            /* [in] */ VARIANT_BOOL bIsDynamic) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrReference( 
            /* [retval][out] */ VARIANT_BOOL *bIsReference) = 0;
        
        virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrReference( 
            /* [in] */ VARIANT_BOOL bIsReference) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrExpression( 
            /* [retval][out] */ BSTR *bstrExpression) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrExpression( 
            /* [in] */ BSTR bstrExpression) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrValue( 
            /* [retval][out] */ BSTR *Value) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrValue( 
            /* [in] */ BSTR Value) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrDesc( 
            /* [retval][out] */ BSTR *bstrDescription) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrDesc( 
            /* [in] */ BSTR bstrDescription) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SubUnitsSuffix( 
            /* [retval][out] */ BSTR *suffix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SubUnitsSuffix( 
            /* [in] */ BSTR suffix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SubUnitsFactor( 
            /* [retval][out] */ double *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SubUnitsFactor( 
            /* [in] */ double factor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSubUnitsSuffix( 
            /* [retval][out] */ BSTR *suffix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSubUnitsSuffix( 
            /* [in] */ BSTR suffix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSubUnitsFactor( 
            /* [retval][out] */ double *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSubUnitsFactor( 
            /* [in] */ double factor) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDimRotatedVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDimRotated * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDimRotated * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDimRotated * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDimRotated * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDimRotated * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDimRotated * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDimRotated * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDimRotated * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDimRotated * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDimRotated * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDimRotated * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDimRotated * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDimRotated * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDimRotated * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDimRotated * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadDimRotated * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadDimRotated * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadDimRotated * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadDimRotated * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadDimRotated * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadDimRotated * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadDimRotated * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadDimRotated * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadDimRotated * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadDimRotated * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPosition )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT *textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPosition )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRotation )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRotation )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextOverride)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOverride )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextOverride)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOverride )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DecimalSeparator)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DecimalSeparator )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DecimalSeparator)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DecimalSeparator )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGap )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGap )( 
            IGcadDimRotated * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrefix )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrefix )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextSuffix )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextSuffix )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_VerticalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalTextPosition )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimVerticalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_VerticalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalTextPosition )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimVerticalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TolerancePrecision )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TolerancePrecision )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceHeightScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceHeightScale )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceHeightScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceHeightScale )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceLowerLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceLowerLimit )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceLowerLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceLowerLimit )( 
            IGcadDimRotated * This,
            /* [in] */ double lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextMovement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextMovement )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimTextMovement *Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextMovement)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextMovement )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimTextMovement Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceDisplay )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimToleranceMethod *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceDisplay )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimToleranceMethod method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceJustification)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceJustification )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimToleranceJustify *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceJustification)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceJustification )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimToleranceJustify method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceUpperLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceUpperLimit )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceUpperLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceUpperLimit )( 
            IGcadDimRotated * This,
            /* [in] */ double upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadDimRotated * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressLeadingZeros )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressLeadingZeros )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressTrailingZeros )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressTrailingZeros )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressLeadingZeros )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressLeadingZeros )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressTrailingZeros )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressTrailingZeros )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFill )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFill )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFillColor )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFillColor )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DimTxtDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimTxtDirection )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *pbVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DimTxtDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimTxtDirection )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnits )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltUnits)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnits )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsPrecision )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsPrecision )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltUnitsScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsScale )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltUnitsScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsScale )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltRoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltRoundDistance )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltRoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltRoundDistance )( 
            IGcadDimRotated * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltTolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTolerancePrecision )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimPrecision *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltTolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTolerancePrecision )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimPrecision Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltUnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsFormat )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimUnits *Units);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltUnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsFormat )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimUnits Units);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltTextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextPrefix )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltTextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextPrefix )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltTextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextSuffix )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltTextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextSuffix )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineColor )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineColor )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ExtensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineColor )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ExtensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineColor )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_PrimaryUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrimaryUnitsPrecision )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimPrecision *Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_PrimaryUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PrimaryUnitsPrecision )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimPrecision Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimensionLineExtend)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineExtend )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *extend);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimensionLineExtend)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineExtend )( 
            IGcadDimRotated * This,
            /* [in] */ double extend);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ExtensionLineExtend)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineExtend )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *extend);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ExtensionLineExtend)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineExtend )( 
            IGcadDimRotated * This,
            /* [in] */ double extend);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_Fit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fit )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimFit *fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_Fit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fit )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimFit fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_FractionFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FractionFormat )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimFractionType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_FractionFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FractionFormat )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimFractionType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_HorizontalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalTextPosition )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimHorizontalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_HorizontalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HorizontalTextPosition )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimHorizontalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_LinearScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinearScaleFactor )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_NOUNITS *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_LinearScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinearScaleFactor )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_NOUNITS Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_UnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnitsFormat )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimLUnits *format);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_UnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnitsFormat )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimLUnits format);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ExtensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineWeight )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_LWEIGHT *lweight);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ExtensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineWeight )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_LWEIGHT lweight);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_RoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RoundDistance )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_RoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RoundDistance )( 
            IGcadDimRotated * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimLine1Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine1Suppress )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimLine1Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine1Suppress )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimLine2Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine2Suppress )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimLine2Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine2Suppress )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ExtLine1Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Suppress )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ExtLine1Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Suppress )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ExtLine2Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Suppress )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ExtLine2Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Suppress )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLineInside )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLineInside )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_TextInsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInsideAlign )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_TextInsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInsideAlign )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_TextInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInside )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_TextInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInside )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ForceLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForceLineInside )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ForceLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForceLineInside )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_TextOutsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOutsideAlign )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_TextOutsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOutsideAlign )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ExtensionLineOffset)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineOffset )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ExtensionLineOffset)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineOffset )( 
            IGcadDimRotated * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressLeadingZeros )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressLeadingZeros )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressTrailingZeros )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressTrailingZeros )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroFeet )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroFeet )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroInches )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroInches )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressLeadingZeros )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressLeadingZeros )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressTrailingZeros )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressTrailingZeros )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroFeet )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroFeet )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroInches )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroInches )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_SuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroFeet )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_SuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroFeet )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_SuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroInches )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_SuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroInches )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroFeet )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroFeet )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroInches )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroInches )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineWeight )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GCAD_LWEIGHT *weight);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineWeight )( 
            IGcadDimRotated * This,
            /* [in] */ GCAD_LWEIGHT weight);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadDimRotated * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_Arrowhead1Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Type )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_Arrowhead1Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Type )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_Arrowhead2Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Type )( 
            IGcadDimRotated * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_Arrowhead2Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Type )( 
            IGcadDimRotated * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_Measurement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Measurement )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_Arrowhead1Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Block )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_Arrowhead1Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Block )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_Arrowhead2Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Block )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_Arrowhead2Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Block )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimensionLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLinetype )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimensionLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLinetype )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ExtLine1Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Linetype )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ExtLine1Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Linetype )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ExtLine2Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Linetype )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ExtLine2Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Linetype )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ExtLineFixedLenSuppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLenSuppress )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ExtLineFixedLenSuppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLenSuppress )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_ExtLineFixedLen)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLen )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_ExtLineFixedLen)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLen )( 
            IGcadDimRotated * This,
            /* [in] */ double FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimConstrForm)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrForm )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimConstrForm)
        /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrForm )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimConstrReference)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrReference )( 
            IGcadDimRotated * This,
            /* [retval][out] */ VARIANT_BOOL *bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimConstrReference)
        /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrReference )( 
            IGcadDimRotated * This,
            /* [in] */ VARIANT_BOOL bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimConstrName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrName )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimConstrName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrName )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimConstrExpression)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrExpression )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimConstrExpression)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrExpression )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimConstrValue)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrValue )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *Value);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimConstrValue)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrValue )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR Value);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_DimConstrDesc)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrDesc )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *bstrDescription);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_DimConstrDesc)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrDesc )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR bstrDescription);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_SubUnitsSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SubUnitsSuffix )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_SubUnitsSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SubUnitsSuffix )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_SubUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SubUnitsFactor )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_SubUnitsFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SubUnitsFactor )( 
            IGcadDimRotated * This,
            /* [in] */ double factor);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltSubUnitsSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSubUnitsSuffix )( 
            IGcadDimRotated * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltSubUnitsSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSubUnitsSuffix )( 
            IGcadDimRotated * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, get_AltSubUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSubUnitsFactor )( 
            IGcadDimRotated * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimRotated, put_AltSubUnitsFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSubUnitsFactor )( 
            IGcadDimRotated * This,
            /* [in] */ double factor);
        
        END_INTERFACE
    } IGcadDimRotatedVtbl;

    interface IGcadDimRotated
    {
        CONST_VTBL struct IGcadDimRotatedVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDimRotated_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDimRotated_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDimRotated_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDimRotated_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDimRotated_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDimRotated_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDimRotated_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDimRotated_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDimRotated_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDimRotated_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDimRotated_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDimRotated_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDimRotated_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDimRotated_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDimRotated_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDimRotated_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDimRotated_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDimRotated_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDimRotated_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDimRotated_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDimRotated_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadDimRotated_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadDimRotated_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadDimRotated_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadDimRotated_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadDimRotated_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadDimRotated_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadDimRotated_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadDimRotated_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadDimRotated_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadDimRotated_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadDimRotated_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadDimRotated_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadDimRotated_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadDimRotated_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadDimRotated_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadDimRotated_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadDimRotated_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadDimRotated_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadDimRotated_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadDimRotated_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadDimRotated_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadDimRotated_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadDimRotated_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadDimRotated_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadDimRotated_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadDimRotated_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadDimRotated_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadDimRotated_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadDimRotated_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadDimRotated_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadDimRotated_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadDimRotated_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadDimRotated_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadDimRotated_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadDimRotated_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadDimRotated_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadDimRotated_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadDimRotated_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadDimRotated_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadDimRotated_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadDimRotated_get_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> get_TextPosition(This,textPos) ) 

#define IGcadDimRotated_put_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> put_TextPosition(This,textPos) ) 

#define IGcadDimRotated_get_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_TextRotation(This,rotAngle) ) 

#define IGcadDimRotated_put_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_TextRotation(This,rotAngle) ) 

#define IGcadDimRotated_get_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextOverride(This,bstrText) ) 

#define IGcadDimRotated_put_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextOverride(This,bstrText) ) 

#define IGcadDimRotated_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadDimRotated_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadDimRotated_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadDimRotated_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadDimRotated_get_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> get_DecimalSeparator(This,character) ) 

#define IGcadDimRotated_put_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> put_DecimalSeparator(This,character) ) 

#define IGcadDimRotated_get_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> get_TextGap(This,Offset) ) 

#define IGcadDimRotated_put_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> put_TextGap(This,Offset) ) 

#define IGcadDimRotated_get_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_TextPrefix(This,prefix) ) 

#define IGcadDimRotated_put_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_TextPrefix(This,prefix) ) 

#define IGcadDimRotated_get_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_TextSuffix(This,suffix) ) 

#define IGcadDimRotated_put_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_TextSuffix(This,suffix) ) 

#define IGcadDimRotated_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadDimRotated_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadDimRotated_get_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_VerticalTextPosition(This,Type) ) 

#define IGcadDimRotated_put_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_VerticalTextPosition(This,Type) ) 

#define IGcadDimRotated_get_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> get_TolerancePrecision(This,precision) ) 

#define IGcadDimRotated_put_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> put_TolerancePrecision(This,precision) ) 

#define IGcadDimRotated_get_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> get_ToleranceHeightScale(This,scale) ) 

#define IGcadDimRotated_put_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> put_ToleranceHeightScale(This,scale) ) 

#define IGcadDimRotated_get_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> get_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimRotated_put_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> put_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimRotated_get_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> get_TextMovement(This,Move) ) 

#define IGcadDimRotated_put_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> put_TextMovement(This,Move) ) 

#define IGcadDimRotated_get_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceDisplay(This,method) ) 

#define IGcadDimRotated_put_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceDisplay(This,method) ) 

#define IGcadDimRotated_get_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceJustification(This,method) ) 

#define IGcadDimRotated_put_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceJustification(This,method) ) 

#define IGcadDimRotated_get_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> get_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimRotated_put_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> put_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimRotated_get_TextStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextStyle(This,style) ) 

#define IGcadDimRotated_put_TextStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextStyle(This,style) ) 

#define IGcadDimRotated_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadDimRotated_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadDimRotated_get_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRotated_put_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRotated_get_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRotated_put_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRotated_get_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRotated_put_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRotated_get_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRotated_put_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRotated_get_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> get_TextFill(This,bVal) ) 

#define IGcadDimRotated_put_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> put_TextFill(This,bVal) ) 

#define IGcadDimRotated_get_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> get_TextFillColor(This,color) ) 

#define IGcadDimRotated_put_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> put_TextFillColor(This,color) ) 

#define IGcadDimRotated_get_DimTxtDirection(This,pbVal)	\
    ( (This)->lpVtbl -> get_DimTxtDirection(This,pbVal) ) 

#define IGcadDimRotated_put_DimTxtDirection(This,bVal)	\
    ( (This)->lpVtbl -> put_DimTxtDirection(This,bVal) ) 


#define IGcadDimRotated_get_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> get_AltUnits(This,bAlternate) ) 

#define IGcadDimRotated_put_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> put_AltUnits(This,bAlternate) ) 

#define IGcadDimRotated_get_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> get_AltUnitsPrecision(This,precision) ) 

#define IGcadDimRotated_put_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> put_AltUnitsPrecision(This,precision) ) 

#define IGcadDimRotated_get_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> get_AltUnitsScale(This,scale) ) 

#define IGcadDimRotated_put_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> put_AltUnitsScale(This,scale) ) 

#define IGcadDimRotated_get_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_AltRoundDistance(This,Distance) ) 

#define IGcadDimRotated_put_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_AltRoundDistance(This,Distance) ) 

#define IGcadDimRotated_get_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> get_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimRotated_put_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> put_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimRotated_get_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> get_AltUnitsFormat(This,Units) ) 

#define IGcadDimRotated_put_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> put_AltUnitsFormat(This,Units) ) 

#define IGcadDimRotated_get_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextPrefix(This,prefix) ) 

#define IGcadDimRotated_put_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextPrefix(This,prefix) ) 

#define IGcadDimRotated_get_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextSuffix(This,prefix) ) 

#define IGcadDimRotated_put_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextSuffix(This,prefix) ) 

#define IGcadDimRotated_get_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_DimensionLineColor(This,Type) ) 

#define IGcadDimRotated_put_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_DimensionLineColor(This,Type) ) 

#define IGcadDimRotated_get_ExtensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_ExtensionLineColor(This,Type) ) 

#define IGcadDimRotated_put_ExtensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_ExtensionLineColor(This,Type) ) 

#define IGcadDimRotated_get_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> get_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimRotated_put_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> put_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimRotated_get_DimensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> get_DimensionLineExtend(This,extend) ) 

#define IGcadDimRotated_put_DimensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> put_DimensionLineExtend(This,extend) ) 

#define IGcadDimRotated_get_ExtensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> get_ExtensionLineExtend(This,extend) ) 

#define IGcadDimRotated_put_ExtensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> put_ExtensionLineExtend(This,extend) ) 

#define IGcadDimRotated_get_Fit(This,fittype)	\
    ( (This)->lpVtbl -> get_Fit(This,fittype) ) 

#define IGcadDimRotated_put_Fit(This,fittype)	\
    ( (This)->lpVtbl -> put_Fit(This,fittype) ) 

#define IGcadDimRotated_get_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> get_FractionFormat(This,Type) ) 

#define IGcadDimRotated_put_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> put_FractionFormat(This,Type) ) 

#define IGcadDimRotated_get_HorizontalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_HorizontalTextPosition(This,Type) ) 

#define IGcadDimRotated_put_HorizontalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_HorizontalTextPosition(This,Type) ) 

#define IGcadDimRotated_get_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> get_LinearScaleFactor(This,Type) ) 

#define IGcadDimRotated_put_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> put_LinearScaleFactor(This,Type) ) 

#define IGcadDimRotated_get_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> get_UnitsFormat(This,format) ) 

#define IGcadDimRotated_put_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> put_UnitsFormat(This,format) ) 

#define IGcadDimRotated_get_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> get_ExtensionLineWeight(This,lweight) ) 

#define IGcadDimRotated_put_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> put_ExtensionLineWeight(This,lweight) ) 

#define IGcadDimRotated_get_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_RoundDistance(This,Distance) ) 

#define IGcadDimRotated_put_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_RoundDistance(This,Distance) ) 

#define IGcadDimRotated_get_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDimRotated_put_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDimRotated_get_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDimRotated_put_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDimRotated_get_ExtLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_ExtLine1Suppress(This,bSuppress) ) 

#define IGcadDimRotated_put_ExtLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_ExtLine1Suppress(This,bSuppress) ) 

#define IGcadDimRotated_get_ExtLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_ExtLine2Suppress(This,bSuppress) ) 

#define IGcadDimRotated_put_ExtLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_ExtLine2Suppress(This,bSuppress) ) 

#define IGcadDimRotated_get_DimLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_DimLineInside(This,bInside) ) 

#define IGcadDimRotated_put_DimLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_DimLineInside(This,bInside) ) 

#define IGcadDimRotated_get_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInsideAlign(This,bInside) ) 

#define IGcadDimRotated_put_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInsideAlign(This,bInside) ) 

#define IGcadDimRotated_get_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInside(This,bInside) ) 

#define IGcadDimRotated_put_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInside(This,bInside) ) 

#define IGcadDimRotated_get_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_ForceLineInside(This,bInside) ) 

#define IGcadDimRotated_put_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_ForceLineInside(This,bInside) ) 

#define IGcadDimRotated_get_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextOutsideAlign(This,bInside) ) 

#define IGcadDimRotated_put_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextOutsideAlign(This,bInside) ) 

#define IGcadDimRotated_get_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> get_ExtensionLineOffset(This,Offset) ) 

#define IGcadDimRotated_put_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> put_ExtensionLineOffset(This,Offset) ) 

#define IGcadDimRotated_get_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRotated_put_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRotated_get_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRotated_put_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRotated_get_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRotated_put_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRotated_get_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimRotated_put_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimRotated_get_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRotated_put_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRotated_get_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRotated_put_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRotated_get_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRotated_put_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRotated_get_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRotated_put_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRotated_get_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimRotated_put_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimRotated_get_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroInches(This,bVal) ) 

#define IGcadDimRotated_put_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroInches(This,bVal) ) 

#define IGcadDimRotated_get_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRotated_put_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRotated_get_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRotated_put_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRotated_get_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> get_DimensionLineWeight(This,weight) ) 

#define IGcadDimRotated_put_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> put_DimensionLineWeight(This,weight) ) 

#define IGcadDimRotated_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadDimRotated_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadDimRotated_get_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead1Type(This,Type) ) 

#define IGcadDimRotated_put_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead1Type(This,Type) ) 

#define IGcadDimRotated_get_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead2Type(This,Type) ) 

#define IGcadDimRotated_put_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead2Type(This,Type) ) 

#define IGcadDimRotated_get_Measurement(This,bVal)	\
    ( (This)->lpVtbl -> get_Measurement(This,bVal) ) 

#define IGcadDimRotated_get_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead1Block(This,BlockName) ) 

#define IGcadDimRotated_put_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead1Block(This,BlockName) ) 

#define IGcadDimRotated_get_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead2Block(This,BlockName) ) 

#define IGcadDimRotated_put_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead2Block(This,BlockName) ) 

#define IGcadDimRotated_get_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_DimensionLinetype(This,Linetype) ) 

#define IGcadDimRotated_put_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_DimensionLinetype(This,Linetype) ) 

#define IGcadDimRotated_get_ExtLine1Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ExtLine1Linetype(This,Linetype) ) 

#define IGcadDimRotated_put_ExtLine1Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ExtLine1Linetype(This,Linetype) ) 

#define IGcadDimRotated_get_ExtLine2Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ExtLine2Linetype(This,Linetype) ) 

#define IGcadDimRotated_put_ExtLine2Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ExtLine2Linetype(This,Linetype) ) 

#define IGcadDimRotated_get_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDimRotated_put_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDimRotated_get_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDimRotated_put_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDimRotated_get_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> get_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDimRotated_put_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> put_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDimRotated_get_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> get_DimConstrReference(This,bIsReference) ) 

#define IGcadDimRotated_put_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> put_DimConstrReference(This,bIsReference) ) 

#define IGcadDimRotated_get_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> get_DimConstrName(This,bstrName) ) 

#define IGcadDimRotated_put_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> put_DimConstrName(This,bstrName) ) 

#define IGcadDimRotated_get_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> get_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDimRotated_put_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> put_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDimRotated_get_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> get_DimConstrValue(This,Value) ) 

#define IGcadDimRotated_put_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> put_DimConstrValue(This,Value) ) 

#define IGcadDimRotated_get_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> get_DimConstrDesc(This,bstrDescription) ) 

#define IGcadDimRotated_put_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> put_DimConstrDesc(This,bstrDescription) ) 

#define IGcadDimRotated_get_SubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_SubUnitsSuffix(This,suffix) ) 

#define IGcadDimRotated_put_SubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_SubUnitsSuffix(This,suffix) ) 

#define IGcadDimRotated_get_SubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_SubUnitsFactor(This,factor) ) 

#define IGcadDimRotated_put_SubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> put_SubUnitsFactor(This,factor) ) 

#define IGcadDimRotated_get_AltSubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_AltSubUnitsSuffix(This,suffix) ) 

#define IGcadDimRotated_put_AltSubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_AltSubUnitsSuffix(This,suffix) ) 

#define IGcadDimRotated_get_AltSubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_AltSubUnitsFactor(This,factor) ) 

#define IGcadDimRotated_put_AltSubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> put_AltSubUnitsFactor(This,factor) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltTextPrefix_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimRotated_put_AltTextPrefix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_AltTextSuffix_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *prefix);


void __RPC_STUB IGcadDimRotated_get_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltTextSuffix_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimRotated_put_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimensionLineColor_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GCAD_COLOR *Type);


void __RPC_STUB IGcadDimRotated_get_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimensionLineColor_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GCAD_COLOR Type);


void __RPC_STUB IGcadDimRotated_put_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ExtensionLineColor_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GCAD_COLOR *Type);


void __RPC_STUB IGcadDimRotated_get_ExtensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ExtensionLineColor_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GCAD_COLOR Type);


void __RPC_STUB IGcadDimRotated_put_ExtensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_PrimaryUnitsPrecision_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GcDimPrecision *Prec);


void __RPC_STUB IGcadDimRotated_get_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_PrimaryUnitsPrecision_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GcDimPrecision Prec);


void __RPC_STUB IGcadDimRotated_put_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimensionLineExtend_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ double *extend);


void __RPC_STUB IGcadDimRotated_get_DimensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimensionLineExtend_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ double extend);


void __RPC_STUB IGcadDimRotated_put_DimensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ExtensionLineExtend_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ double *extend);


void __RPC_STUB IGcadDimRotated_get_ExtensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ExtensionLineExtend_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ double extend);


void __RPC_STUB IGcadDimRotated_put_ExtensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_Fit_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GcDimFit *fittype);


void __RPC_STUB IGcadDimRotated_get_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_Fit_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GcDimFit fittype);


void __RPC_STUB IGcadDimRotated_put_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_FractionFormat_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GcDimFractionType *Type);


void __RPC_STUB IGcadDimRotated_get_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_FractionFormat_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GcDimFractionType Type);


void __RPC_STUB IGcadDimRotated_put_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_HorizontalTextPosition_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GcDimHorizontalJustification *Type);


void __RPC_STUB IGcadDimRotated_get_HorizontalTextPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_HorizontalTextPosition_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GcDimHorizontalJustification Type);


void __RPC_STUB IGcadDimRotated_put_HorizontalTextPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_LinearScaleFactor_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GCAD_NOUNITS *Type);


void __RPC_STUB IGcadDimRotated_get_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_LinearScaleFactor_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GCAD_NOUNITS Type);


void __RPC_STUB IGcadDimRotated_put_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_UnitsFormat_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GcDimLUnits *format);


void __RPC_STUB IGcadDimRotated_get_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_UnitsFormat_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GcDimLUnits format);


void __RPC_STUB IGcadDimRotated_put_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ExtensionLineWeight_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GCAD_LWEIGHT *lweight);


void __RPC_STUB IGcadDimRotated_get_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ExtensionLineWeight_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GCAD_LWEIGHT lweight);


void __RPC_STUB IGcadDimRotated_put_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_RoundDistance_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ double *Distance);


void __RPC_STUB IGcadDimRotated_get_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_RoundDistance_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ double Distance);


void __RPC_STUB IGcadDimRotated_put_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimLine1Suppress_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimRotated_get_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimLine1Suppress_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimRotated_put_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimLine2Suppress_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimRotated_get_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimLine2Suppress_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimRotated_put_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ExtLine1Suppress_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimRotated_get_ExtLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ExtLine1Suppress_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimRotated_put_ExtLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ExtLine2Suppress_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimRotated_get_ExtLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ExtLine2Suppress_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimRotated_put_ExtLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimLineInside_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRotated_get_DimLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimLineInside_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRotated_put_DimLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_TextInsideAlign_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRotated_get_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_TextInsideAlign_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRotated_put_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_TextInside_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRotated_get_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_TextInside_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRotated_put_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ForceLineInside_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRotated_get_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ForceLineInside_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRotated_put_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_TextOutsideAlign_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRotated_get_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_TextOutsideAlign_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRotated_put_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ExtensionLineOffset_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ double *Offset);


void __RPC_STUB IGcadDimRotated_get_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ExtensionLineOffset_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ double Offset);


void __RPC_STUB IGcadDimRotated_put_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_AltSuppressLeadingZeros_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltSuppressLeadingZeros_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_AltSuppressTrailingZeros_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltSuppressTrailingZeros_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_AltSuppressZeroFeet_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltSuppressZeroFeet_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_AltSuppressZeroInches_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltSuppressZeroInches_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_SuppressZeroFeet_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_SuppressZeroFeet_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_SuppressZeroInches_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_SuppressZeroInches_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRotated_get_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRotated_put_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimensionLineWeight_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GCAD_LWEIGHT *weight);


void __RPC_STUB IGcadDimRotated_get_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimensionLineWeight_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GCAD_LWEIGHT weight);


void __RPC_STUB IGcadDimRotated_put_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ArrowheadSize_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ double *size);


void __RPC_STUB IGcadDimRotated_get_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ArrowheadSize_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ double size);


void __RPC_STUB IGcadDimRotated_put_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_Arrowhead1Type_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimRotated_get_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_Arrowhead1Type_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimRotated_put_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_Arrowhead2Type_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimRotated_get_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_Arrowhead2Type_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimRotated_put_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_Measurement_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ double *bVal);


void __RPC_STUB IGcadDimRotated_get_Measurement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_Arrowhead1Block_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimRotated_get_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_Arrowhead1Block_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimRotated_put_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_Arrowhead2Block_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimRotated_get_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_Arrowhead2Block_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimRotated_put_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimensionLinetype_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimRotated_get_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimensionLinetype_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimRotated_put_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ExtLine1Linetype_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimRotated_get_ExtLine1Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ExtLine1Linetype_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimRotated_put_ExtLine1Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ExtLine2Linetype_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimRotated_get_ExtLine2Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ExtLine2Linetype_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimRotated_put_ExtLine2Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ExtLineFixedLenSuppress_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bFixedLen);


void __RPC_STUB IGcadDimRotated_get_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ExtLineFixedLenSuppress_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bFixedLen);


void __RPC_STUB IGcadDimRotated_put_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_ExtLineFixedLen_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ double *FixedLen);


void __RPC_STUB IGcadDimRotated_get_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_ExtLineFixedLen_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ double FixedLen);


void __RPC_STUB IGcadDimRotated_put_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimConstrForm_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bIsDynamic);


void __RPC_STUB IGcadDimRotated_get_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimConstrForm_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bIsDynamic);


void __RPC_STUB IGcadDimRotated_put_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimConstrReference_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ VARIANT_BOOL *bIsReference);


void __RPC_STUB IGcadDimRotated_get_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimConstrReference_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ VARIANT_BOOL bIsReference);


void __RPC_STUB IGcadDimRotated_put_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimConstrName_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *bstrName);


void __RPC_STUB IGcadDimRotated_get_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimConstrName_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR bstrName);


void __RPC_STUB IGcadDimRotated_put_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimConstrExpression_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *bstrExpression);


void __RPC_STUB IGcadDimRotated_get_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimConstrExpression_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR bstrExpression);


void __RPC_STUB IGcadDimRotated_put_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimConstrValue_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *Value);


void __RPC_STUB IGcadDimRotated_get_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimConstrValue_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR Value);


void __RPC_STUB IGcadDimRotated_put_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_DimConstrDesc_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *bstrDescription);


void __RPC_STUB IGcadDimRotated_get_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_DimConstrDesc_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR bstrDescription);


void __RPC_STUB IGcadDimRotated_put_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_SubUnitsSuffix_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *suffix);


void __RPC_STUB IGcadDimRotated_get_SubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_SubUnitsSuffix_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR suffix);


void __RPC_STUB IGcadDimRotated_put_SubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_SubUnitsFactor_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ double *factor);


void __RPC_STUB IGcadDimRotated_get_SubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_SubUnitsFactor_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ double factor);


void __RPC_STUB IGcadDimRotated_put_SubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_AltSubUnitsSuffix_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ BSTR *suffix);


void __RPC_STUB IGcadDimRotated_get_AltSubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltSubUnitsSuffix_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ BSTR suffix);


void __RPC_STUB IGcadDimRotated_put_AltSubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_get_AltSubUnitsFactor_Proxy( 
    IGcadDimRotated * This,
    /* [retval][out] */ double *factor);


void __RPC_STUB IGcadDimRotated_get_AltSubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRotated_put_AltSubUnitsFactor_Proxy( 
    IGcadDimRotated * This,
    /* [in] */ double factor);


void __RPC_STUB IGcadDimRotated_put_AltSubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGcadDimRotated_INTERFACE_DEFINED__ */


#ifndef __IGcadDimOrdinate_INTERFACE_DEFINED__
#define __IGcadDimOrdinate_INTERFACE_DEFINED__

/* interface IGcadDimOrdinate */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDimOrdinate;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("251DE54B-53EE-47A2-8A4F-53D2EE9E7C57")
    IGcadDimOrdinate : public IGcadDimension
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnits( 
            /* [retval][out] */ VARIANT_BOOL *bAlternate) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnits( 
            /* [in] */ VARIANT_BOOL bAlternate) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *precision) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsPrecision( 
            /* [in] */ GcDimPrecision precision) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsScale( 
            /* [retval][out] */ GCAD_NOUNITS *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsScale( 
            /* [in] */ GCAD_NOUNITS scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltRoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltRoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTolerancePrecision( 
            /* [retval][out] */ GcDimPrecision *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTolerancePrecision( 
            /* [in] */ GcDimPrecision Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsFormat( 
            /* [retval][out] */ GcDimUnits *Units) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsFormat( 
            /* [in] */ GcDimUnits Units) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextPrefix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextPrefix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextSuffix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextSuffix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PrimaryUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *Prec) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PrimaryUnitsPrecision( 
            /* [in] */ GcDimPrecision Prec) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FractionFormat( 
            /* [retval][out] */ GcDimFractionType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FractionFormat( 
            /* [in] */ GcDimFractionType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LinearScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LinearScaleFactor( 
            /* [in] */ GCAD_NOUNITS Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnitsFormat( 
            /* [retval][out] */ GcDimLUnits *format) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UnitsFormat( 
            /* [in] */ GcDimLUnits format) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *lweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT lweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineOffset( 
            /* [retval][out] */ double *Offset) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineOffset( 
            /* [in] */ double Offset) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Measurement( 
            /* [retval][out] */ double *bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLenSuppress( 
            /* [retval][out] */ VARIANT_BOOL *bFixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLenSuppress( 
            /* [in] */ VARIANT_BOOL bFixedLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLen( 
            /* [retval][out] */ double *FixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLen( 
            /* [in] */ double FixedLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SubUnitsSuffix( 
            /* [retval][out] */ BSTR *suffix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SubUnitsSuffix( 
            /* [in] */ BSTR suffix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SubUnitsFactor( 
            /* [retval][out] */ double *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SubUnitsFactor( 
            /* [in] */ double factor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSubUnitsSuffix( 
            /* [retval][out] */ BSTR *suffix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSubUnitsSuffix( 
            /* [in] */ BSTR suffix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSubUnitsFactor( 
            /* [retval][out] */ double *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSubUnitsFactor( 
            /* [in] */ double factor) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDimOrdinateVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDimOrdinate * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDimOrdinate * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDimOrdinate * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDimOrdinate * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDimOrdinate * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDimOrdinate * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDimOrdinate * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDimOrdinate * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDimOrdinate * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadDimOrdinate * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadDimOrdinate * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadDimOrdinate * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadDimOrdinate * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadDimOrdinate * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadDimOrdinate * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPosition )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT *textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPosition )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRotation )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRotation )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextOverride)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOverride )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextOverride)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOverride )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DecimalSeparator)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DecimalSeparator )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DecimalSeparator)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DecimalSeparator )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGap )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGap )( 
            IGcadDimOrdinate * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrefix )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrefix )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextSuffix )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextSuffix )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_VerticalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalTextPosition )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GcDimVerticalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_VerticalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalTextPosition )( 
            IGcadDimOrdinate * This,
            /* [in] */ GcDimVerticalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TolerancePrecision )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TolerancePrecision )( 
            IGcadDimOrdinate * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceHeightScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceHeightScale )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceHeightScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceHeightScale )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceLowerLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceLowerLimit )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceLowerLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceLowerLimit )( 
            IGcadDimOrdinate * This,
            /* [in] */ double lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextMovement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextMovement )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GcDimTextMovement *Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextMovement)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextMovement )( 
            IGcadDimOrdinate * This,
            /* [in] */ GcDimTextMovement Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceDisplay )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GcDimToleranceMethod *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceDisplay )( 
            IGcadDimOrdinate * This,
            /* [in] */ GcDimToleranceMethod method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceJustification)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceJustification )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GcDimToleranceJustify *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceJustification)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceJustification )( 
            IGcadDimOrdinate * This,
            /* [in] */ GcDimToleranceJustify method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceUpperLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceUpperLimit )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceUpperLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceUpperLimit )( 
            IGcadDimOrdinate * This,
            /* [in] */ double upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadDimOrdinate * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressLeadingZeros )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressLeadingZeros )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressTrailingZeros )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressTrailingZeros )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressLeadingZeros )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressLeadingZeros )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressTrailingZeros )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressTrailingZeros )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFill )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFill )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFillColor )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFillColor )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DimTxtDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimTxtDirection )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *pbVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DimTxtDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimTxtDirection )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnits )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltUnits)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnits )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsPrecision )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsPrecision )( 
            IGcadDimOrdinate * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltUnitsScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsScale )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltUnitsScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsScale )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltRoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltRoundDistance )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltRoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltRoundDistance )( 
            IGcadDimOrdinate * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltTolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTolerancePrecision )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GcDimPrecision *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltTolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTolerancePrecision )( 
            IGcadDimOrdinate * This,
            /* [in] */ GcDimPrecision Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltUnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsFormat )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GcDimUnits *Units);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltUnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsFormat )( 
            IGcadDimOrdinate * This,
            /* [in] */ GcDimUnits Units);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltTextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextPrefix )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltTextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextPrefix )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltTextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextSuffix )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltTextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextSuffix )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_ExtensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineColor )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_ExtensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineColor )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_PrimaryUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrimaryUnitsPrecision )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GcDimPrecision *Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_PrimaryUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PrimaryUnitsPrecision )( 
            IGcadDimOrdinate * This,
            /* [in] */ GcDimPrecision Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_FractionFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FractionFormat )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GcDimFractionType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_FractionFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FractionFormat )( 
            IGcadDimOrdinate * This,
            /* [in] */ GcDimFractionType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_LinearScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinearScaleFactor )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_NOUNITS *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_LinearScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinearScaleFactor )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_NOUNITS Type);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_UnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnitsFormat )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GcDimLUnits *format);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_UnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnitsFormat )( 
            IGcadDimOrdinate * This,
            /* [in] */ GcDimLUnits format);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_ExtensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineWeight )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ GCAD_LWEIGHT *lweight);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_ExtensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineWeight )( 
            IGcadDimOrdinate * This,
            /* [in] */ GCAD_LWEIGHT lweight);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_RoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RoundDistance )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_RoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RoundDistance )( 
            IGcadDimOrdinate * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_ExtensionLineOffset)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineOffset )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_ExtensionLineOffset)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineOffset )( 
            IGcadDimOrdinate * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressLeadingZeros )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressLeadingZeros )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressTrailingZeros )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressTrailingZeros )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroFeet )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroFeet )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroInches )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroInches )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressLeadingZeros )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressLeadingZeros )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressTrailingZeros )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressTrailingZeros )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroFeet )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroFeet )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroInches )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroInches )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_SuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroFeet )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_SuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroFeet )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_SuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroInches )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_SuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroInches )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_ToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroFeet )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_ToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroFeet )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_ToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroInches )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_ToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroInches )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadDimOrdinate * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_Measurement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Measurement )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_ExtLineFixedLenSuppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLenSuppress )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ VARIANT_BOOL *bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_ExtLineFixedLenSuppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLenSuppress )( 
            IGcadDimOrdinate * This,
            /* [in] */ VARIANT_BOOL bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_ExtLineFixedLen)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLen )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_ExtLineFixedLen)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLen )( 
            IGcadDimOrdinate * This,
            /* [in] */ double FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_SubUnitsSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SubUnitsSuffix )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_SubUnitsSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SubUnitsSuffix )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_SubUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SubUnitsFactor )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_SubUnitsFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SubUnitsFactor )( 
            IGcadDimOrdinate * This,
            /* [in] */ double factor);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltSubUnitsSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSubUnitsSuffix )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltSubUnitsSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSubUnitsSuffix )( 
            IGcadDimOrdinate * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, get_AltSubUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSubUnitsFactor )( 
            IGcadDimOrdinate * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimOrdinate, put_AltSubUnitsFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSubUnitsFactor )( 
            IGcadDimOrdinate * This,
            /* [in] */ double factor);
        
        END_INTERFACE
    } IGcadDimOrdinateVtbl;

    interface IGcadDimOrdinate
    {
        CONST_VTBL struct IGcadDimOrdinateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDimOrdinate_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDimOrdinate_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDimOrdinate_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDimOrdinate_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDimOrdinate_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDimOrdinate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDimOrdinate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDimOrdinate_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDimOrdinate_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDimOrdinate_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDimOrdinate_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDimOrdinate_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDimOrdinate_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDimOrdinate_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDimOrdinate_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDimOrdinate_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDimOrdinate_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDimOrdinate_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDimOrdinate_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDimOrdinate_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDimOrdinate_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadDimOrdinate_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadDimOrdinate_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadDimOrdinate_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadDimOrdinate_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadDimOrdinate_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadDimOrdinate_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadDimOrdinate_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadDimOrdinate_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadDimOrdinate_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadDimOrdinate_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadDimOrdinate_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadDimOrdinate_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadDimOrdinate_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadDimOrdinate_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadDimOrdinate_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadDimOrdinate_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadDimOrdinate_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadDimOrdinate_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadDimOrdinate_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadDimOrdinate_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadDimOrdinate_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadDimOrdinate_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadDimOrdinate_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadDimOrdinate_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadDimOrdinate_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadDimOrdinate_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadDimOrdinate_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadDimOrdinate_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadDimOrdinate_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadDimOrdinate_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadDimOrdinate_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadDimOrdinate_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadDimOrdinate_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadDimOrdinate_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadDimOrdinate_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadDimOrdinate_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadDimOrdinate_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadDimOrdinate_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadDimOrdinate_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadDimOrdinate_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadDimOrdinate_get_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> get_TextPosition(This,textPos) ) 

#define IGcadDimOrdinate_put_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> put_TextPosition(This,textPos) ) 

#define IGcadDimOrdinate_get_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_TextRotation(This,rotAngle) ) 

#define IGcadDimOrdinate_put_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_TextRotation(This,rotAngle) ) 

#define IGcadDimOrdinate_get_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextOverride(This,bstrText) ) 

#define IGcadDimOrdinate_put_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextOverride(This,bstrText) ) 

#define IGcadDimOrdinate_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadDimOrdinate_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadDimOrdinate_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadDimOrdinate_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadDimOrdinate_get_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> get_DecimalSeparator(This,character) ) 

#define IGcadDimOrdinate_put_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> put_DecimalSeparator(This,character) ) 

#define IGcadDimOrdinate_get_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> get_TextGap(This,Offset) ) 

#define IGcadDimOrdinate_put_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> put_TextGap(This,Offset) ) 

#define IGcadDimOrdinate_get_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_TextPrefix(This,prefix) ) 

#define IGcadDimOrdinate_put_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_TextPrefix(This,prefix) ) 

#define IGcadDimOrdinate_get_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_TextSuffix(This,suffix) ) 

#define IGcadDimOrdinate_put_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_TextSuffix(This,suffix) ) 

#define IGcadDimOrdinate_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadDimOrdinate_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadDimOrdinate_get_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_VerticalTextPosition(This,Type) ) 

#define IGcadDimOrdinate_put_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_VerticalTextPosition(This,Type) ) 

#define IGcadDimOrdinate_get_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> get_TolerancePrecision(This,precision) ) 

#define IGcadDimOrdinate_put_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> put_TolerancePrecision(This,precision) ) 

#define IGcadDimOrdinate_get_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> get_ToleranceHeightScale(This,scale) ) 

#define IGcadDimOrdinate_put_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> put_ToleranceHeightScale(This,scale) ) 

#define IGcadDimOrdinate_get_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> get_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimOrdinate_put_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> put_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimOrdinate_get_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> get_TextMovement(This,Move) ) 

#define IGcadDimOrdinate_put_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> put_TextMovement(This,Move) ) 

#define IGcadDimOrdinate_get_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceDisplay(This,method) ) 

#define IGcadDimOrdinate_put_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceDisplay(This,method) ) 

#define IGcadDimOrdinate_get_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceJustification(This,method) ) 

#define IGcadDimOrdinate_put_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceJustification(This,method) ) 

#define IGcadDimOrdinate_get_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> get_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimOrdinate_put_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> put_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimOrdinate_get_TextStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextStyle(This,style) ) 

#define IGcadDimOrdinate_put_TextStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextStyle(This,style) ) 

#define IGcadDimOrdinate_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadDimOrdinate_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadDimOrdinate_get_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimOrdinate_put_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimOrdinate_get_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimOrdinate_put_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimOrdinate_get_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimOrdinate_put_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimOrdinate_get_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimOrdinate_put_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimOrdinate_get_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> get_TextFill(This,bVal) ) 

#define IGcadDimOrdinate_put_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> put_TextFill(This,bVal) ) 

#define IGcadDimOrdinate_get_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> get_TextFillColor(This,color) ) 

#define IGcadDimOrdinate_put_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> put_TextFillColor(This,color) ) 

#define IGcadDimOrdinate_get_DimTxtDirection(This,pbVal)	\
    ( (This)->lpVtbl -> get_DimTxtDirection(This,pbVal) ) 

#define IGcadDimOrdinate_put_DimTxtDirection(This,bVal)	\
    ( (This)->lpVtbl -> put_DimTxtDirection(This,bVal) ) 


#define IGcadDimOrdinate_get_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> get_AltUnits(This,bAlternate) ) 

#define IGcadDimOrdinate_put_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> put_AltUnits(This,bAlternate) ) 

#define IGcadDimOrdinate_get_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> get_AltUnitsPrecision(This,precision) ) 

#define IGcadDimOrdinate_put_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> put_AltUnitsPrecision(This,precision) ) 

#define IGcadDimOrdinate_get_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> get_AltUnitsScale(This,scale) ) 

#define IGcadDimOrdinate_put_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> put_AltUnitsScale(This,scale) ) 

#define IGcadDimOrdinate_get_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_AltRoundDistance(This,Distance) ) 

#define IGcadDimOrdinate_put_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_AltRoundDistance(This,Distance) ) 

#define IGcadDimOrdinate_get_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> get_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimOrdinate_put_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> put_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimOrdinate_get_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> get_AltUnitsFormat(This,Units) ) 

#define IGcadDimOrdinate_put_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> put_AltUnitsFormat(This,Units) ) 

#define IGcadDimOrdinate_get_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextPrefix(This,prefix) ) 

#define IGcadDimOrdinate_put_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextPrefix(This,prefix) ) 

#define IGcadDimOrdinate_get_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextSuffix(This,prefix) ) 

#define IGcadDimOrdinate_put_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextSuffix(This,prefix) ) 

#define IGcadDimOrdinate_get_ExtensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_ExtensionLineColor(This,Type) ) 

#define IGcadDimOrdinate_put_ExtensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_ExtensionLineColor(This,Type) ) 

#define IGcadDimOrdinate_get_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> get_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimOrdinate_put_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> put_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimOrdinate_get_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> get_FractionFormat(This,Type) ) 

#define IGcadDimOrdinate_put_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> put_FractionFormat(This,Type) ) 

#define IGcadDimOrdinate_get_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> get_LinearScaleFactor(This,Type) ) 

#define IGcadDimOrdinate_put_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> put_LinearScaleFactor(This,Type) ) 

#define IGcadDimOrdinate_get_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> get_UnitsFormat(This,format) ) 

#define IGcadDimOrdinate_put_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> put_UnitsFormat(This,format) ) 

#define IGcadDimOrdinate_get_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> get_ExtensionLineWeight(This,lweight) ) 

#define IGcadDimOrdinate_put_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> put_ExtensionLineWeight(This,lweight) ) 

#define IGcadDimOrdinate_get_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_RoundDistance(This,Distance) ) 

#define IGcadDimOrdinate_put_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_RoundDistance(This,Distance) ) 

#define IGcadDimOrdinate_get_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> get_ExtensionLineOffset(This,Offset) ) 

#define IGcadDimOrdinate_put_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> put_ExtensionLineOffset(This,Offset) ) 

#define IGcadDimOrdinate_get_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimOrdinate_put_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimOrdinate_get_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimOrdinate_put_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimOrdinate_get_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimOrdinate_put_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimOrdinate_get_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimOrdinate_put_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimOrdinate_get_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimOrdinate_put_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimOrdinate_get_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimOrdinate_put_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimOrdinate_get_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimOrdinate_put_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimOrdinate_get_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimOrdinate_put_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimOrdinate_get_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimOrdinate_put_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimOrdinate_get_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroInches(This,bVal) ) 

#define IGcadDimOrdinate_put_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroInches(This,bVal) ) 

#define IGcadDimOrdinate_get_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimOrdinate_put_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimOrdinate_get_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimOrdinate_put_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimOrdinate_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadDimOrdinate_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadDimOrdinate_get_Measurement(This,bVal)	\
    ( (This)->lpVtbl -> get_Measurement(This,bVal) ) 

#define IGcadDimOrdinate_get_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDimOrdinate_put_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDimOrdinate_get_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDimOrdinate_put_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDimOrdinate_get_SubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_SubUnitsSuffix(This,suffix) ) 

#define IGcadDimOrdinate_put_SubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_SubUnitsSuffix(This,suffix) ) 

#define IGcadDimOrdinate_get_SubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_SubUnitsFactor(This,factor) ) 

#define IGcadDimOrdinate_put_SubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> put_SubUnitsFactor(This,factor) ) 

#define IGcadDimOrdinate_get_AltSubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_AltSubUnitsSuffix(This,suffix) ) 

#define IGcadDimOrdinate_put_AltSubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_AltSubUnitsSuffix(This,suffix) ) 

#define IGcadDimOrdinate_get_AltSubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_AltSubUnitsFactor(This,factor) ) 

#define IGcadDimOrdinate_put_AltSubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> put_AltSubUnitsFactor(This,factor) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltTextPrefix_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimOrdinate_put_AltTextPrefix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_AltTextSuffix_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ BSTR *prefix);


void __RPC_STUB IGcadDimOrdinate_get_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltTextSuffix_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimOrdinate_put_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_ExtensionLineColor_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ GCAD_COLOR *Type);


void __RPC_STUB IGcadDimOrdinate_get_ExtensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_ExtensionLineColor_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ GCAD_COLOR Type);


void __RPC_STUB IGcadDimOrdinate_put_ExtensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_PrimaryUnitsPrecision_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ GcDimPrecision *Prec);


void __RPC_STUB IGcadDimOrdinate_get_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_PrimaryUnitsPrecision_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ GcDimPrecision Prec);


void __RPC_STUB IGcadDimOrdinate_put_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_FractionFormat_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ GcDimFractionType *Type);


void __RPC_STUB IGcadDimOrdinate_get_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_FractionFormat_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ GcDimFractionType Type);


void __RPC_STUB IGcadDimOrdinate_put_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_LinearScaleFactor_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ GCAD_NOUNITS *Type);


void __RPC_STUB IGcadDimOrdinate_get_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_LinearScaleFactor_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ GCAD_NOUNITS Type);


void __RPC_STUB IGcadDimOrdinate_put_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_UnitsFormat_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ GcDimLUnits *format);


void __RPC_STUB IGcadDimOrdinate_get_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_UnitsFormat_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ GcDimLUnits format);


void __RPC_STUB IGcadDimOrdinate_put_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_ExtensionLineWeight_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ GCAD_LWEIGHT *lweight);


void __RPC_STUB IGcadDimOrdinate_get_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_ExtensionLineWeight_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ GCAD_LWEIGHT lweight);


void __RPC_STUB IGcadDimOrdinate_put_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_RoundDistance_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ double *Distance);


void __RPC_STUB IGcadDimOrdinate_get_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_RoundDistance_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ double Distance);


void __RPC_STUB IGcadDimOrdinate_put_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_ExtensionLineOffset_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ double *Offset);


void __RPC_STUB IGcadDimOrdinate_get_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_ExtensionLineOffset_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ double Offset);


void __RPC_STUB IGcadDimOrdinate_put_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_AltSuppressLeadingZeros_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltSuppressLeadingZeros_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_AltSuppressTrailingZeros_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltSuppressTrailingZeros_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_AltSuppressZeroFeet_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltSuppressZeroFeet_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_AltSuppressZeroInches_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltSuppressZeroInches_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_SuppressZeroFeet_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_SuppressZeroFeet_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_SuppressZeroInches_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_SuppressZeroInches_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimOrdinate_get_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimOrdinate_put_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_ArrowheadSize_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ double *size);


void __RPC_STUB IGcadDimOrdinate_get_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_ArrowheadSize_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ double size);


void __RPC_STUB IGcadDimOrdinate_put_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_Measurement_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ double *bVal);


void __RPC_STUB IGcadDimOrdinate_get_Measurement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_ExtLineFixedLenSuppress_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ VARIANT_BOOL *bFixedLen);


void __RPC_STUB IGcadDimOrdinate_get_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_ExtLineFixedLenSuppress_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ VARIANT_BOOL bFixedLen);


void __RPC_STUB IGcadDimOrdinate_put_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_ExtLineFixedLen_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ double *FixedLen);


void __RPC_STUB IGcadDimOrdinate_get_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_ExtLineFixedLen_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ double FixedLen);


void __RPC_STUB IGcadDimOrdinate_put_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_SubUnitsSuffix_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ BSTR *suffix);


void __RPC_STUB IGcadDimOrdinate_get_SubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_SubUnitsSuffix_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ BSTR suffix);


void __RPC_STUB IGcadDimOrdinate_put_SubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_SubUnitsFactor_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ double *factor);


void __RPC_STUB IGcadDimOrdinate_get_SubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_SubUnitsFactor_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ double factor);


void __RPC_STUB IGcadDimOrdinate_put_SubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_AltSubUnitsSuffix_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ BSTR *suffix);


void __RPC_STUB IGcadDimOrdinate_get_AltSubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltSubUnitsSuffix_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ BSTR suffix);


void __RPC_STUB IGcadDimOrdinate_put_AltSubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_get_AltSubUnitsFactor_Proxy( 
    IGcadDimOrdinate * This,
    /* [retval][out] */ double *factor);


void __RPC_STUB IGcadDimOrdinate_get_AltSubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimOrdinate_put_AltSubUnitsFactor_Proxy( 
    IGcadDimOrdinate * This,
    /* [in] */ double factor);


void __RPC_STUB IGcadDimOrdinate_put_AltSubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGcadDimOrdinate_INTERFACE_DEFINED__ */


#ifndef __IGcadDimRadial_INTERFACE_DEFINED__
#define __IGcadDimRadial_INTERFACE_DEFINED__

/* interface IGcadDimRadial */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDimRadial;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6070AA16-B13D-4B73-AA07-722C59BC09B5")
    IGcadDimRadial : public IGcadDimension
    {
    public:
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLength( 
            /* [in] */ double rhs) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnits( 
            /* [retval][out] */ VARIANT_BOOL *bAlternate) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnits( 
            /* [in] */ VARIANT_BOOL bAlternate) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *precision) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsPrecision( 
            /* [in] */ GcDimPrecision precision) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsScale( 
            /* [retval][out] */ GCAD_NOUNITS *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsScale( 
            /* [in] */ GCAD_NOUNITS scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltRoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltRoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTolerancePrecision( 
            /* [retval][out] */ GcDimPrecision *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTolerancePrecision( 
            /* [in] */ GcDimPrecision Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsFormat( 
            /* [retval][out] */ GcDimUnits *Units) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsFormat( 
            /* [in] */ GcDimUnits Units) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextPrefix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextPrefix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextSuffix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextSuffix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CenterType( 
            /* [retval][out] */ GcDimCenterType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CenterType( 
            /* [in] */ GcDimCenterType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CenterMarkSize( 
            /* [retval][out] */ double *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CenterMarkSize( 
            /* [in] */ double Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PrimaryUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *Prec) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PrimaryUnitsPrecision( 
            /* [in] */ GcDimPrecision Prec) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FractionFormat( 
            /* [retval][out] */ GcDimFractionType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FractionFormat( 
            /* [in] */ GcDimFractionType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Fit( 
            /* [retval][out] */ GcDimFit *fittype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Fit( 
            /* [in] */ GcDimFit fittype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LinearScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LinearScaleFactor( 
            /* [in] */ GCAD_NOUNITS Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnitsFormat( 
            /* [retval][out] */ GcDimLUnits *format) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UnitsFormat( 
            /* [in] */ GcDimLUnits format) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLineSuppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLineSuppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForceLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForceLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextOutsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextOutsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *weight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT weight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadType( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadType( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Measurement( 
            /* [retval][out] */ double *bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadBlock( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadBlock( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrForm( 
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic) = 0;
        
        virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrForm( 
            /* [in] */ VARIANT_BOOL bIsDynamic) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrReference( 
            /* [retval][out] */ VARIANT_BOOL *bIsReference) = 0;
        
        virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrReference( 
            /* [in] */ VARIANT_BOOL bIsReference) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrExpression( 
            /* [retval][out] */ BSTR *bstrExpression) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrExpression( 
            /* [in] */ BSTR bstrExpression) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrValue( 
            /* [retval][out] */ BSTR *Value) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrValue( 
            /* [in] */ BSTR Value) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrDesc( 
            /* [retval][out] */ BSTR *bstrDescription) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrDesc( 
            /* [in] */ BSTR bstrDescription) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDimRadialVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDimRadial * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDimRadial * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDimRadial * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDimRadial * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDimRadial * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDimRadial * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDimRadial * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDimRadial * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDimRadial * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDimRadial * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDimRadial * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDimRadial * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDimRadial * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDimRadial * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDimRadial * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadDimRadial * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadDimRadial * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadDimRadial * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadDimRadial * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadDimRadial * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadDimRadial * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadDimRadial * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadDimRadial * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadDimRadial * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadDimRadial * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPosition )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT *textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPosition )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRotation )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRotation )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextOverride)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOverride )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextOverride)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOverride )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DecimalSeparator)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DecimalSeparator )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DecimalSeparator)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DecimalSeparator )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGap )( 
            IGcadDimRadial * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGap )( 
            IGcadDimRadial * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrefix )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrefix )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextSuffix )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextSuffix )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_VerticalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalTextPosition )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimVerticalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_VerticalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalTextPosition )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimVerticalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TolerancePrecision )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TolerancePrecision )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceHeightScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceHeightScale )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceHeightScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceHeightScale )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceLowerLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceLowerLimit )( 
            IGcadDimRadial * This,
            /* [retval][out] */ double *lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceLowerLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceLowerLimit )( 
            IGcadDimRadial * This,
            /* [in] */ double lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextMovement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextMovement )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimTextMovement *Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextMovement)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextMovement )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimTextMovement Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceDisplay )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimToleranceMethod *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceDisplay )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimToleranceMethod method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceJustification)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceJustification )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimToleranceJustify *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceJustification)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceJustification )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimToleranceJustify method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceUpperLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceUpperLimit )( 
            IGcadDimRadial * This,
            /* [retval][out] */ double *upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceUpperLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceUpperLimit )( 
            IGcadDimRadial * This,
            /* [in] */ double upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadDimRadial * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadDimRadial * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressLeadingZeros )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressLeadingZeros )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressTrailingZeros )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressTrailingZeros )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressLeadingZeros )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressLeadingZeros )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressTrailingZeros )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressTrailingZeros )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFill )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFill )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFillColor )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFillColor )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DimTxtDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimTxtDirection )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *pbVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DimTxtDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimTxtDirection )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_LeaderLength)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLength )( 
            IGcadDimRadial * This,
            /* [in] */ double rhs);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnits )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltUnits)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnits )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsPrecision )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsPrecision )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltUnitsScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsScale )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltUnitsScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsScale )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltRoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltRoundDistance )( 
            IGcadDimRadial * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltRoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltRoundDistance )( 
            IGcadDimRadial * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltTolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTolerancePrecision )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimPrecision *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltTolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTolerancePrecision )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimPrecision Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltUnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsFormat )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimUnits *Units);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltUnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsFormat )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimUnits Units);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltTextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextPrefix )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltTextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextPrefix )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltTextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextSuffix )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltTextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextSuffix )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_CenterType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CenterType )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimCenterType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_CenterType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CenterType )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimCenterType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_CenterMarkSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CenterMarkSize )( 
            IGcadDimRadial * This,
            /* [retval][out] */ double *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_CenterMarkSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CenterMarkSize )( 
            IGcadDimRadial * This,
            /* [in] */ double Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_DimensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineColor )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_DimensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineColor )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_PrimaryUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrimaryUnitsPrecision )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimPrecision *Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_PrimaryUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PrimaryUnitsPrecision )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimPrecision Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_FractionFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FractionFormat )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimFractionType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_FractionFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FractionFormat )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimFractionType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_Fit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fit )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimFit *fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_Fit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fit )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimFit fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_LinearScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinearScaleFactor )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_NOUNITS *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_LinearScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinearScaleFactor )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_NOUNITS Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_UnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnitsFormat )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimLUnits *format);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_UnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnitsFormat )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimLUnits format);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_RoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RoundDistance )( 
            IGcadDimRadial * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_RoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RoundDistance )( 
            IGcadDimRadial * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_DimLineSuppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLineSuppress )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_DimLineSuppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLineSuppress )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_TextInsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInsideAlign )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_TextInsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInsideAlign )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_TextInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInside )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_TextInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInside )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_ForceLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForceLineInside )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_ForceLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForceLineInside )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_TextOutsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOutsideAlign )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_TextOutsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOutsideAlign )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressLeadingZeros )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressLeadingZeros )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressTrailingZeros )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressTrailingZeros )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroFeet )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroFeet )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroInches )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroInches )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressLeadingZeros )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressLeadingZeros )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressTrailingZeros )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressTrailingZeros )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroFeet )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroFeet )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_AltToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroInches )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_AltToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroInches )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_SuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroFeet )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_SuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroFeet )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_SuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroInches )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_SuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroInches )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_ToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroFeet )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_ToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroFeet )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_ToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroInches )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_ToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroInches )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_DimensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineWeight )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GCAD_LWEIGHT *weight);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_DimensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineWeight )( 
            IGcadDimRadial * This,
            /* [in] */ GCAD_LWEIGHT weight);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadDimRadial * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadDimRadial * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_ArrowheadType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadType )( 
            IGcadDimRadial * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_ArrowheadType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadType )( 
            IGcadDimRadial * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_Measurement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Measurement )( 
            IGcadDimRadial * This,
            /* [retval][out] */ double *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_ArrowheadBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadBlock )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_ArrowheadBlock)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadBlock )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_DimensionLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLinetype )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_DimensionLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLinetype )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_DimConstrForm)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrForm )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_DimConstrForm)
        /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrForm )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_DimConstrReference)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrReference )( 
            IGcadDimRadial * This,
            /* [retval][out] */ VARIANT_BOOL *bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_DimConstrReference)
        /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrReference )( 
            IGcadDimRadial * This,
            /* [in] */ VARIANT_BOOL bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_DimConstrName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrName )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_DimConstrName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrName )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_DimConstrExpression)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrExpression )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_DimConstrExpression)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrExpression )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_DimConstrValue)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrValue )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *Value);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_DimConstrValue)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrValue )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR Value);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, get_DimConstrDesc)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrDesc )( 
            IGcadDimRadial * This,
            /* [retval][out] */ BSTR *bstrDescription);
        
        DECLSPEC_XFGVIRT(IGcadDimRadial, put_DimConstrDesc)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrDesc )( 
            IGcadDimRadial * This,
            /* [in] */ BSTR bstrDescription);
        
        END_INTERFACE
    } IGcadDimRadialVtbl;

    interface IGcadDimRadial
    {
        CONST_VTBL struct IGcadDimRadialVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDimRadial_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDimRadial_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDimRadial_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDimRadial_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDimRadial_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDimRadial_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDimRadial_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDimRadial_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDimRadial_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDimRadial_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDimRadial_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDimRadial_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDimRadial_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDimRadial_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDimRadial_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDimRadial_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDimRadial_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDimRadial_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDimRadial_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDimRadial_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDimRadial_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadDimRadial_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadDimRadial_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadDimRadial_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadDimRadial_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadDimRadial_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadDimRadial_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadDimRadial_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadDimRadial_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadDimRadial_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadDimRadial_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadDimRadial_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadDimRadial_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadDimRadial_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadDimRadial_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadDimRadial_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadDimRadial_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadDimRadial_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadDimRadial_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadDimRadial_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadDimRadial_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadDimRadial_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadDimRadial_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadDimRadial_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadDimRadial_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadDimRadial_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadDimRadial_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadDimRadial_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadDimRadial_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadDimRadial_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadDimRadial_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadDimRadial_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadDimRadial_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadDimRadial_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadDimRadial_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadDimRadial_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadDimRadial_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadDimRadial_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadDimRadial_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadDimRadial_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadDimRadial_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadDimRadial_get_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> get_TextPosition(This,textPos) ) 

#define IGcadDimRadial_put_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> put_TextPosition(This,textPos) ) 

#define IGcadDimRadial_get_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_TextRotation(This,rotAngle) ) 

#define IGcadDimRadial_put_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_TextRotation(This,rotAngle) ) 

#define IGcadDimRadial_get_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextOverride(This,bstrText) ) 

#define IGcadDimRadial_put_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextOverride(This,bstrText) ) 

#define IGcadDimRadial_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadDimRadial_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadDimRadial_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadDimRadial_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadDimRadial_get_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> get_DecimalSeparator(This,character) ) 

#define IGcadDimRadial_put_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> put_DecimalSeparator(This,character) ) 

#define IGcadDimRadial_get_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> get_TextGap(This,Offset) ) 

#define IGcadDimRadial_put_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> put_TextGap(This,Offset) ) 

#define IGcadDimRadial_get_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_TextPrefix(This,prefix) ) 

#define IGcadDimRadial_put_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_TextPrefix(This,prefix) ) 

#define IGcadDimRadial_get_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_TextSuffix(This,suffix) ) 

#define IGcadDimRadial_put_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_TextSuffix(This,suffix) ) 

#define IGcadDimRadial_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadDimRadial_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadDimRadial_get_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_VerticalTextPosition(This,Type) ) 

#define IGcadDimRadial_put_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_VerticalTextPosition(This,Type) ) 

#define IGcadDimRadial_get_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> get_TolerancePrecision(This,precision) ) 

#define IGcadDimRadial_put_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> put_TolerancePrecision(This,precision) ) 

#define IGcadDimRadial_get_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> get_ToleranceHeightScale(This,scale) ) 

#define IGcadDimRadial_put_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> put_ToleranceHeightScale(This,scale) ) 

#define IGcadDimRadial_get_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> get_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimRadial_put_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> put_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimRadial_get_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> get_TextMovement(This,Move) ) 

#define IGcadDimRadial_put_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> put_TextMovement(This,Move) ) 

#define IGcadDimRadial_get_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceDisplay(This,method) ) 

#define IGcadDimRadial_put_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceDisplay(This,method) ) 

#define IGcadDimRadial_get_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceJustification(This,method) ) 

#define IGcadDimRadial_put_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceJustification(This,method) ) 

#define IGcadDimRadial_get_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> get_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimRadial_put_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> put_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimRadial_get_TextStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextStyle(This,style) ) 

#define IGcadDimRadial_put_TextStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextStyle(This,style) ) 

#define IGcadDimRadial_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadDimRadial_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadDimRadial_get_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadial_put_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadial_get_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadial_put_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadial_get_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadial_put_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadial_get_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadial_put_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadial_get_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> get_TextFill(This,bVal) ) 

#define IGcadDimRadial_put_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> put_TextFill(This,bVal) ) 

#define IGcadDimRadial_get_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> get_TextFillColor(This,color) ) 

#define IGcadDimRadial_put_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> put_TextFillColor(This,color) ) 

#define IGcadDimRadial_get_DimTxtDirection(This,pbVal)	\
    ( (This)->lpVtbl -> get_DimTxtDirection(This,pbVal) ) 

#define IGcadDimRadial_put_DimTxtDirection(This,bVal)	\
    ( (This)->lpVtbl -> put_DimTxtDirection(This,bVal) ) 


#define IGcadDimRadial_put_LeaderLength(This,rhs)	\
    ( (This)->lpVtbl -> put_LeaderLength(This,rhs) ) 

#define IGcadDimRadial_get_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> get_AltUnits(This,bAlternate) ) 

#define IGcadDimRadial_put_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> put_AltUnits(This,bAlternate) ) 

#define IGcadDimRadial_get_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> get_AltUnitsPrecision(This,precision) ) 

#define IGcadDimRadial_put_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> put_AltUnitsPrecision(This,precision) ) 

#define IGcadDimRadial_get_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> get_AltUnitsScale(This,scale) ) 

#define IGcadDimRadial_put_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> put_AltUnitsScale(This,scale) ) 

#define IGcadDimRadial_get_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_AltRoundDistance(This,Distance) ) 

#define IGcadDimRadial_put_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_AltRoundDistance(This,Distance) ) 

#define IGcadDimRadial_get_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> get_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimRadial_put_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> put_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimRadial_get_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> get_AltUnitsFormat(This,Units) ) 

#define IGcadDimRadial_put_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> put_AltUnitsFormat(This,Units) ) 

#define IGcadDimRadial_get_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextPrefix(This,prefix) ) 

#define IGcadDimRadial_put_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextPrefix(This,prefix) ) 

#define IGcadDimRadial_get_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextSuffix(This,prefix) ) 

#define IGcadDimRadial_put_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextSuffix(This,prefix) ) 

#define IGcadDimRadial_get_CenterType(This,Type)	\
    ( (This)->lpVtbl -> get_CenterType(This,Type) ) 

#define IGcadDimRadial_put_CenterType(This,Type)	\
    ( (This)->lpVtbl -> put_CenterType(This,Type) ) 

#define IGcadDimRadial_get_CenterMarkSize(This,Type)	\
    ( (This)->lpVtbl -> get_CenterMarkSize(This,Type) ) 

#define IGcadDimRadial_put_CenterMarkSize(This,Type)	\
    ( (This)->lpVtbl -> put_CenterMarkSize(This,Type) ) 

#define IGcadDimRadial_get_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_DimensionLineColor(This,Type) ) 

#define IGcadDimRadial_put_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_DimensionLineColor(This,Type) ) 

#define IGcadDimRadial_get_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> get_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimRadial_put_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> put_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimRadial_get_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> get_FractionFormat(This,Type) ) 

#define IGcadDimRadial_put_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> put_FractionFormat(This,Type) ) 

#define IGcadDimRadial_get_Fit(This,fittype)	\
    ( (This)->lpVtbl -> get_Fit(This,fittype) ) 

#define IGcadDimRadial_put_Fit(This,fittype)	\
    ( (This)->lpVtbl -> put_Fit(This,fittype) ) 

#define IGcadDimRadial_get_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> get_LinearScaleFactor(This,Type) ) 

#define IGcadDimRadial_put_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> put_LinearScaleFactor(This,Type) ) 

#define IGcadDimRadial_get_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> get_UnitsFormat(This,format) ) 

#define IGcadDimRadial_put_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> put_UnitsFormat(This,format) ) 

#define IGcadDimRadial_get_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_RoundDistance(This,Distance) ) 

#define IGcadDimRadial_put_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_RoundDistance(This,Distance) ) 

#define IGcadDimRadial_get_DimLineSuppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLineSuppress(This,bSuppress) ) 

#define IGcadDimRadial_put_DimLineSuppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLineSuppress(This,bSuppress) ) 

#define IGcadDimRadial_get_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInsideAlign(This,bInside) ) 

#define IGcadDimRadial_put_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInsideAlign(This,bInside) ) 

#define IGcadDimRadial_get_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInside(This,bInside) ) 

#define IGcadDimRadial_put_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInside(This,bInside) ) 

#define IGcadDimRadial_get_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_ForceLineInside(This,bInside) ) 

#define IGcadDimRadial_put_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_ForceLineInside(This,bInside) ) 

#define IGcadDimRadial_get_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextOutsideAlign(This,bInside) ) 

#define IGcadDimRadial_put_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextOutsideAlign(This,bInside) ) 

#define IGcadDimRadial_get_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadial_put_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadial_get_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadial_put_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadial_get_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadial_put_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadial_get_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadial_put_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadial_get_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadial_put_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadial_get_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadial_put_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadial_get_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadial_put_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadial_get_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadial_put_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadial_get_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadial_put_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadial_get_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroInches(This,bVal) ) 

#define IGcadDimRadial_put_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroInches(This,bVal) ) 

#define IGcadDimRadial_get_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadial_put_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadial_get_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadial_put_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadial_get_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> get_DimensionLineWeight(This,weight) ) 

#define IGcadDimRadial_put_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> put_DimensionLineWeight(This,weight) ) 

#define IGcadDimRadial_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadDimRadial_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadDimRadial_get_ArrowheadType(This,Type)	\
    ( (This)->lpVtbl -> get_ArrowheadType(This,Type) ) 

#define IGcadDimRadial_put_ArrowheadType(This,Type)	\
    ( (This)->lpVtbl -> put_ArrowheadType(This,Type) ) 

#define IGcadDimRadial_get_Measurement(This,bVal)	\
    ( (This)->lpVtbl -> get_Measurement(This,bVal) ) 

#define IGcadDimRadial_get_ArrowheadBlock(This,BlockName)	\
    ( (This)->lpVtbl -> get_ArrowheadBlock(This,BlockName) ) 

#define IGcadDimRadial_put_ArrowheadBlock(This,BlockName)	\
    ( (This)->lpVtbl -> put_ArrowheadBlock(This,BlockName) ) 

#define IGcadDimRadial_get_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_DimensionLinetype(This,Linetype) ) 

#define IGcadDimRadial_put_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_DimensionLinetype(This,Linetype) ) 

#define IGcadDimRadial_get_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> get_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDimRadial_put_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> put_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDimRadial_get_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> get_DimConstrReference(This,bIsReference) ) 

#define IGcadDimRadial_put_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> put_DimConstrReference(This,bIsReference) ) 

#define IGcadDimRadial_get_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> get_DimConstrName(This,bstrName) ) 

#define IGcadDimRadial_put_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> put_DimConstrName(This,bstrName) ) 

#define IGcadDimRadial_get_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> get_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDimRadial_put_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> put_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDimRadial_get_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> get_DimConstrValue(This,Value) ) 

#define IGcadDimRadial_put_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> put_DimConstrValue(This,Value) ) 

#define IGcadDimRadial_get_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> get_DimConstrDesc(This,bstrDescription) ) 

#define IGcadDimRadial_put_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> put_DimConstrDesc(This,bstrDescription) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_AltTextPrefix_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ BSTR *prefix);


void __RPC_STUB IGcadDimRadial_get_AltTextPrefix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_AltTextPrefix_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimRadial_put_AltTextPrefix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_AltTextSuffix_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ BSTR *prefix);


void __RPC_STUB IGcadDimRadial_get_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_AltTextSuffix_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimRadial_put_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_CenterType_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ GcDimCenterType *Type);


void __RPC_STUB IGcadDimRadial_get_CenterType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_CenterType_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ GcDimCenterType Type);


void __RPC_STUB IGcadDimRadial_put_CenterType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_CenterMarkSize_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ double *Type);


void __RPC_STUB IGcadDimRadial_get_CenterMarkSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_CenterMarkSize_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ double Type);


void __RPC_STUB IGcadDimRadial_put_CenterMarkSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_DimensionLineColor_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ GCAD_COLOR *Type);


void __RPC_STUB IGcadDimRadial_get_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_DimensionLineColor_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ GCAD_COLOR Type);


void __RPC_STUB IGcadDimRadial_put_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_PrimaryUnitsPrecision_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ GcDimPrecision *Prec);


void __RPC_STUB IGcadDimRadial_get_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_PrimaryUnitsPrecision_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ GcDimPrecision Prec);


void __RPC_STUB IGcadDimRadial_put_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_FractionFormat_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ GcDimFractionType *Type);


void __RPC_STUB IGcadDimRadial_get_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_FractionFormat_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ GcDimFractionType Type);


void __RPC_STUB IGcadDimRadial_put_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_Fit_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ GcDimFit *fittype);


void __RPC_STUB IGcadDimRadial_get_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_Fit_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ GcDimFit fittype);


void __RPC_STUB IGcadDimRadial_put_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_LinearScaleFactor_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ GCAD_NOUNITS *Type);


void __RPC_STUB IGcadDimRadial_get_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_LinearScaleFactor_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ GCAD_NOUNITS Type);


void __RPC_STUB IGcadDimRadial_put_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_UnitsFormat_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ GcDimLUnits *format);


void __RPC_STUB IGcadDimRadial_get_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_UnitsFormat_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ GcDimLUnits format);


void __RPC_STUB IGcadDimRadial_put_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_RoundDistance_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ double *Distance);


void __RPC_STUB IGcadDimRadial_get_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_RoundDistance_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ double Distance);


void __RPC_STUB IGcadDimRadial_put_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_DimLineSuppress_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimRadial_get_DimLineSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_DimLineSuppress_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimRadial_put_DimLineSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_TextInsideAlign_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRadial_get_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_TextInsideAlign_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRadial_put_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_TextInside_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRadial_get_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_TextInside_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRadial_put_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_ForceLineInside_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRadial_get_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_ForceLineInside_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRadial_put_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_TextOutsideAlign_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRadial_get_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_TextOutsideAlign_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRadial_put_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_AltSuppressLeadingZeros_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_AltSuppressLeadingZeros_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_AltSuppressTrailingZeros_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_AltSuppressTrailingZeros_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_AltSuppressZeroFeet_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_AltSuppressZeroFeet_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_AltSuppressZeroInches_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_AltSuppressZeroInches_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_SuppressZeroFeet_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_SuppressZeroFeet_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_SuppressZeroInches_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_SuppressZeroInches_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadial_get_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadial_put_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_DimensionLineWeight_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ GCAD_LWEIGHT *weight);


void __RPC_STUB IGcadDimRadial_get_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_DimensionLineWeight_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ GCAD_LWEIGHT weight);


void __RPC_STUB IGcadDimRadial_put_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_ArrowheadSize_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ double *size);


void __RPC_STUB IGcadDimRadial_get_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_ArrowheadSize_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ double size);


void __RPC_STUB IGcadDimRadial_put_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_ArrowheadType_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimRadial_get_ArrowheadType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_ArrowheadType_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimRadial_put_ArrowheadType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_Measurement_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ double *bVal);


void __RPC_STUB IGcadDimRadial_get_Measurement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_ArrowheadBlock_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimRadial_get_ArrowheadBlock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_ArrowheadBlock_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimRadial_put_ArrowheadBlock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_DimensionLinetype_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimRadial_get_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_DimensionLinetype_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimRadial_put_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_DimConstrForm_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bIsDynamic);


void __RPC_STUB IGcadDimRadial_get_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_DimConstrForm_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bIsDynamic);


void __RPC_STUB IGcadDimRadial_put_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_DimConstrReference_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ VARIANT_BOOL *bIsReference);


void __RPC_STUB IGcadDimRadial_get_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_DimConstrReference_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ VARIANT_BOOL bIsReference);


void __RPC_STUB IGcadDimRadial_put_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_DimConstrName_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ BSTR *bstrName);


void __RPC_STUB IGcadDimRadial_get_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_DimConstrName_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ BSTR bstrName);


void __RPC_STUB IGcadDimRadial_put_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_DimConstrExpression_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ BSTR *bstrExpression);


void __RPC_STUB IGcadDimRadial_get_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_DimConstrExpression_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ BSTR bstrExpression);


void __RPC_STUB IGcadDimRadial_put_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_DimConstrValue_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ BSTR *Value);


void __RPC_STUB IGcadDimRadial_get_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_DimConstrValue_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ BSTR Value);


void __RPC_STUB IGcadDimRadial_put_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_get_DimConstrDesc_Proxy( 
    IGcadDimRadial * This,
    /* [retval][out] */ BSTR *bstrDescription);


void __RPC_STUB IGcadDimRadial_get_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadial_put_DimConstrDesc_Proxy( 
    IGcadDimRadial * This,
    /* [in] */ BSTR bstrDescription);


void __RPC_STUB IGcadDimRadial_put_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGcadDimRadial_INTERFACE_DEFINED__ */


#ifndef __IGcadEllipse_INTERFACE_DEFINED__
#define __IGcadEllipse_INTERFACE_DEFINED__

/* interface IGcadEllipse */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadEllipse;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("21565C97-8E2E-442B-8F69-C9662BC89DCA")
    IGcadEllipse : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartPoint( 
            /* [retval][out] */ VARIANT *StartPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Center( 
            /* [retval][out] */ VARIANT *Center) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Center( 
            /* [in] */ VARIANT Center) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EndPoint( 
            /* [retval][out] */ VARIANT *EndPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MajorRadius( 
            /* [retval][out] */ double *MajorRadius) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MajorRadius( 
            /* [in] */ double MajorRadius) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MinorRadius( 
            /* [retval][out] */ double *MinorRadius) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MinorRadius( 
            /* [in] */ double MinorRadius) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RadiusRatio( 
            /* [retval][out] */ double *RadiusRatio) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RadiusRatio( 
            /* [in] */ double RadiusRatio) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartAngle( 
            /* [retval][out] */ GCAD_ANGLE *StartAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StartAngle( 
            /* [in] */ GCAD_ANGLE StartAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EndAngle( 
            /* [retval][out] */ GCAD_ANGLE *EndAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EndAngle( 
            /* [in] */ GCAD_ANGLE EndAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartParameter( 
            /* [retval][out] */ double *StartParameter) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StartParameter( 
            /* [in] */ double StartParameter) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EndParameter( 
            /* [retval][out] */ double *EndParameter) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EndParameter( 
            /* [in] */ double EndParameter) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MajorAxis( 
            /* [retval][out] */ VARIANT *MajorAxis) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MajorAxis( 
            /* [in] */ VARIANT MajorAxis) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MinorAxis( 
            /* [retval][out] */ VARIANT *MinorAxis) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Area( 
            /* [retval][out] */ double *Area) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Offset( 
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadEllipseVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadEllipse * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadEllipse * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadEllipse * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadEllipse * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadEllipse * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadEllipse * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadEllipse * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadEllipse * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadEllipse * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadEllipse * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadEllipse * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadEllipse * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadEllipse * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadEllipse * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadEllipse * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadEllipse * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadEllipse * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadEllipse * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadEllipse * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadEllipse * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadEllipse * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadEllipse * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadEllipse * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadEllipse * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadEllipse * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadEllipse * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadEllipse * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadEllipse * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadEllipse * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadEllipse * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadEllipse * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadEllipse * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadEllipse * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadEllipse * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadEllipse * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadEllipse * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadEllipse * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadEllipse * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadEllipse * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadEllipse * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadEllipse * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadEllipse * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadEllipse * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadEllipse * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadEllipse * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadEllipse * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadEllipse * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_StartPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartPoint )( 
            IGcadEllipse * This,
            /* [retval][out] */ VARIANT *StartPoint);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_Center)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Center )( 
            IGcadEllipse * This,
            /* [retval][out] */ VARIANT *Center);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, put_Center)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Center )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT Center);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_EndPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndPoint )( 
            IGcadEllipse * This,
            /* [retval][out] */ VARIANT *EndPoint);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_MajorRadius)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MajorRadius )( 
            IGcadEllipse * This,
            /* [retval][out] */ double *MajorRadius);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, put_MajorRadius)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MajorRadius )( 
            IGcadEllipse * This,
            /* [in] */ double MajorRadius);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_MinorRadius)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinorRadius )( 
            IGcadEllipse * This,
            /* [retval][out] */ double *MinorRadius);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, put_MinorRadius)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinorRadius )( 
            IGcadEllipse * This,
            /* [in] */ double MinorRadius);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_RadiusRatio)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RadiusRatio )( 
            IGcadEllipse * This,
            /* [retval][out] */ double *RadiusRatio);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, put_RadiusRatio)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RadiusRatio )( 
            IGcadEllipse * This,
            /* [in] */ double RadiusRatio);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_StartAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartAngle )( 
            IGcadEllipse * This,
            /* [retval][out] */ GCAD_ANGLE *StartAngle);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, put_StartAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartAngle )( 
            IGcadEllipse * This,
            /* [in] */ GCAD_ANGLE StartAngle);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_EndAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndAngle )( 
            IGcadEllipse * This,
            /* [retval][out] */ GCAD_ANGLE *EndAngle);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, put_EndAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EndAngle )( 
            IGcadEllipse * This,
            /* [in] */ GCAD_ANGLE EndAngle);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_StartParameter)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartParameter )( 
            IGcadEllipse * This,
            /* [retval][out] */ double *StartParameter);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, put_StartParameter)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartParameter )( 
            IGcadEllipse * This,
            /* [in] */ double StartParameter);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_EndParameter)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndParameter )( 
            IGcadEllipse * This,
            /* [retval][out] */ double *EndParameter);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, put_EndParameter)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EndParameter )( 
            IGcadEllipse * This,
            /* [in] */ double EndParameter);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_MajorAxis)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MajorAxis )( 
            IGcadEllipse * This,
            /* [retval][out] */ VARIANT *MajorAxis);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, put_MajorAxis)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MajorAxis )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT MajorAxis);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_MinorAxis)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinorAxis )( 
            IGcadEllipse * This,
            /* [retval][out] */ VARIANT *MinorAxis);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadEllipse * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadEllipse * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, get_Area)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Area )( 
            IGcadEllipse * This,
            /* [retval][out] */ double *Area);
        
        DECLSPEC_XFGVIRT(IGcadEllipse, Offset)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Offset )( 
            IGcadEllipse * This,
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves);
        
        END_INTERFACE
    } IGcadEllipseVtbl;

    interface IGcadEllipse
    {
        CONST_VTBL struct IGcadEllipseVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadEllipse_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadEllipse_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadEllipse_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadEllipse_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadEllipse_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadEllipse_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadEllipse_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadEllipse_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadEllipse_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadEllipse_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadEllipse_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadEllipse_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadEllipse_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadEllipse_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadEllipse_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadEllipse_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadEllipse_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadEllipse_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadEllipse_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadEllipse_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadEllipse_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadEllipse_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadEllipse_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadEllipse_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadEllipse_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadEllipse_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadEllipse_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadEllipse_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadEllipse_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadEllipse_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadEllipse_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadEllipse_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadEllipse_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadEllipse_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadEllipse_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadEllipse_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadEllipse_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadEllipse_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadEllipse_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadEllipse_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadEllipse_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadEllipse_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadEllipse_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadEllipse_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadEllipse_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadEllipse_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadEllipse_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadEllipse_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadEllipse_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadEllipse_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadEllipse_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadEllipse_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadEllipse_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadEllipse_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadEllipse_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadEllipse_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadEllipse_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadEllipse_get_StartPoint(This,StartPoint)	\
    ( (This)->lpVtbl -> get_StartPoint(This,StartPoint) ) 

#define IGcadEllipse_get_Center(This,Center)	\
    ( (This)->lpVtbl -> get_Center(This,Center) ) 

#define IGcadEllipse_put_Center(This,Center)	\
    ( (This)->lpVtbl -> put_Center(This,Center) ) 

#define IGcadEllipse_get_EndPoint(This,EndPoint)	\
    ( (This)->lpVtbl -> get_EndPoint(This,EndPoint) ) 

#define IGcadEllipse_get_MajorRadius(This,MajorRadius)	\
    ( (This)->lpVtbl -> get_MajorRadius(This,MajorRadius) ) 

#define IGcadEllipse_put_MajorRadius(This,MajorRadius)	\
    ( (This)->lpVtbl -> put_MajorRadius(This,MajorRadius) ) 

#define IGcadEllipse_get_MinorRadius(This,MinorRadius)	\
    ( (This)->lpVtbl -> get_MinorRadius(This,MinorRadius) ) 

#define IGcadEllipse_put_MinorRadius(This,MinorRadius)	\
    ( (This)->lpVtbl -> put_MinorRadius(This,MinorRadius) ) 

#define IGcadEllipse_get_RadiusRatio(This,RadiusRatio)	\
    ( (This)->lpVtbl -> get_RadiusRatio(This,RadiusRatio) ) 

#define IGcadEllipse_put_RadiusRatio(This,RadiusRatio)	\
    ( (This)->lpVtbl -> put_RadiusRatio(This,RadiusRatio) ) 

#define IGcadEllipse_get_StartAngle(This,StartAngle)	\
    ( (This)->lpVtbl -> get_StartAngle(This,StartAngle) ) 

#define IGcadEllipse_put_StartAngle(This,StartAngle)	\
    ( (This)->lpVtbl -> put_StartAngle(This,StartAngle) ) 

#define IGcadEllipse_get_EndAngle(This,EndAngle)	\
    ( (This)->lpVtbl -> get_EndAngle(This,EndAngle) ) 

#define IGcadEllipse_put_EndAngle(This,EndAngle)	\
    ( (This)->lpVtbl -> put_EndAngle(This,EndAngle) ) 

#define IGcadEllipse_get_StartParameter(This,StartParameter)	\
    ( (This)->lpVtbl -> get_StartParameter(This,StartParameter) ) 

#define IGcadEllipse_put_StartParameter(This,StartParameter)	\
    ( (This)->lpVtbl -> put_StartParameter(This,StartParameter) ) 

#define IGcadEllipse_get_EndParameter(This,EndParameter)	\
    ( (This)->lpVtbl -> get_EndParameter(This,EndParameter) ) 

#define IGcadEllipse_put_EndParameter(This,EndParameter)	\
    ( (This)->lpVtbl -> put_EndParameter(This,EndParameter) ) 

#define IGcadEllipse_get_MajorAxis(This,MajorAxis)	\
    ( (This)->lpVtbl -> get_MajorAxis(This,MajorAxis) ) 

#define IGcadEllipse_put_MajorAxis(This,MajorAxis)	\
    ( (This)->lpVtbl -> put_MajorAxis(This,MajorAxis) ) 

#define IGcadEllipse_get_MinorAxis(This,MinorAxis)	\
    ( (This)->lpVtbl -> get_MinorAxis(This,MinorAxis) ) 

#define IGcadEllipse_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadEllipse_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadEllipse_get_Area(This,Area)	\
    ( (This)->lpVtbl -> get_Area(This,Area) ) 

#define IGcadEllipse_Offset(This,Distance,pOffsetCurves)	\
    ( (This)->lpVtbl -> Offset(This,Distance,pOffsetCurves) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadEllipse_INTERFACE_DEFINED__ */


#ifndef __IGcadLeader_INTERFACE_DEFINED__
#define __IGcadLeader_INTERFACE_DEFINED__

/* interface IGcadLeader */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadLeader;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4E0C6FC4-8B82-40CA-A3BB-0C645F788048")
    IGcadLeader : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *Coordinates) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT Coordinates) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StyleName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ GcLeaderType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Type( 
            /* [in] */ GcLeaderType Type) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Evaluate( void) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinate( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinate( 
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Annotation( 
            /* [retval][out] */ IGcadEntity **pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Annotation( 
            /* [in] */ IGcadEntity *pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadType( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadType( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *weight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT weight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor( 
            /* [in] */ GCAD_NOUNITS factor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VerticalTextPosition( 
            /* [retval][out] */ GcDimVerticalJustification *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_VerticalTextPosition( 
            /* [in] */ GcDimVerticalJustification Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextGap( 
            /* [retval][out] */ double *Offset) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextGap( 
            /* [in] */ double Offset) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadBlock( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadBlock( 
            /* [in] */ BSTR BlockName) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadLeaderVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadLeader * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadLeader * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadLeader * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadLeader * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadLeader * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadLeader * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadLeader * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadLeader * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadLeader * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadLeader * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadLeader * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadLeader * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadLeader * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadLeader * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadLeader * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadLeader * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadLeader * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadLeader * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadLeader * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadLeader * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadLeader * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadLeader * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadLeader * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadLeader * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadLeader * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadLeader * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadLeader * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadLeader * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadLeader * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadLeader * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadLeader * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadLeader * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadLeader * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadLeader * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadLeader * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadLeader * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadLeader * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadLeader * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadLeader * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadLeader * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadLeader * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadLeader * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadLeader * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadLeader * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadLeader * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadLeader * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadLeader * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadLeader * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadLeader * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadLeader * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadLeader * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadLeader * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadLeader * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadLeader * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadLeader * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadLeader * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadLeader * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcadLeader * This,
            /* [retval][out] */ VARIANT *Coordinates);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcadLeader * This,
            /* [in] */ VARIANT Coordinates);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadLeader * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadLeader * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadLeader * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            IGcadLeader * This,
            /* [retval][out] */ GcLeaderType *Type);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Type )( 
            IGcadLeader * This,
            /* [in] */ GcLeaderType Type);
        
        DECLSPEC_XFGVIRT(IGcadLeader, Evaluate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Evaluate )( 
            IGcadLeader * This);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcadLeader * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcadLeader * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_Annotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Annotation )( 
            IGcadLeader * This,
            /* [retval][out] */ IGcadEntity **pVal);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_Annotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Annotation )( 
            IGcadLeader * This,
            /* [in] */ IGcadEntity *pVal);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadLeader * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadLeader * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_ArrowheadType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadType )( 
            IGcadLeader * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_ArrowheadType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadType )( 
            IGcadLeader * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_DimensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineColor )( 
            IGcadLeader * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_DimensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineColor )( 
            IGcadLeader * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_DimensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineWeight )( 
            IGcadLeader * This,
            /* [retval][out] */ GCAD_LWEIGHT *weight);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_DimensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineWeight )( 
            IGcadLeader * This,
            /* [in] */ GCAD_LWEIGHT weight);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadLeader * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadLeader * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_VerticalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalTextPosition )( 
            IGcadLeader * This,
            /* [retval][out] */ GcDimVerticalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_VerticalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalTextPosition )( 
            IGcadLeader * This,
            /* [in] */ GcDimVerticalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_TextGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGap )( 
            IGcadLeader * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_TextGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGap )( 
            IGcadLeader * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadLeader, get_ArrowheadBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadBlock )( 
            IGcadLeader * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadLeader, put_ArrowheadBlock)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadBlock )( 
            IGcadLeader * This,
            /* [in] */ BSTR BlockName);
        
        END_INTERFACE
    } IGcadLeaderVtbl;

    interface IGcadLeader
    {
        CONST_VTBL struct IGcadLeaderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadLeader_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadLeader_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadLeader_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadLeader_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadLeader_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadLeader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadLeader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadLeader_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadLeader_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadLeader_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadLeader_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadLeader_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadLeader_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadLeader_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadLeader_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadLeader_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadLeader_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadLeader_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadLeader_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadLeader_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadLeader_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadLeader_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadLeader_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadLeader_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadLeader_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadLeader_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadLeader_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadLeader_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadLeader_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadLeader_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadLeader_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadLeader_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadLeader_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadLeader_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadLeader_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadLeader_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadLeader_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadLeader_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadLeader_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadLeader_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadLeader_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadLeader_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadLeader_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadLeader_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadLeader_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadLeader_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadLeader_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadLeader_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadLeader_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadLeader_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadLeader_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadLeader_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadLeader_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadLeader_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadLeader_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadLeader_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadLeader_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadLeader_get_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> get_Coordinates(This,Coordinates) ) 

#define IGcadLeader_put_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> put_Coordinates(This,Coordinates) ) 

#define IGcadLeader_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadLeader_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadLeader_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadLeader_get_Type(This,Type)	\
    ( (This)->lpVtbl -> get_Type(This,Type) ) 

#define IGcadLeader_put_Type(This,Type)	\
    ( (This)->lpVtbl -> put_Type(This,Type) ) 

#define IGcadLeader_Evaluate(This)	\
    ( (This)->lpVtbl -> Evaluate(This) ) 

#define IGcadLeader_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcadLeader_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#define IGcadLeader_get_Annotation(This,pVal)	\
    ( (This)->lpVtbl -> get_Annotation(This,pVal) ) 

#define IGcadLeader_put_Annotation(This,pVal)	\
    ( (This)->lpVtbl -> put_Annotation(This,pVal) ) 

#define IGcadLeader_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadLeader_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadLeader_get_ArrowheadType(This,Type)	\
    ( (This)->lpVtbl -> get_ArrowheadType(This,Type) ) 

#define IGcadLeader_put_ArrowheadType(This,Type)	\
    ( (This)->lpVtbl -> put_ArrowheadType(This,Type) ) 

#define IGcadLeader_get_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_DimensionLineColor(This,Type) ) 

#define IGcadLeader_put_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_DimensionLineColor(This,Type) ) 

#define IGcadLeader_get_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> get_DimensionLineWeight(This,weight) ) 

#define IGcadLeader_put_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> put_DimensionLineWeight(This,weight) ) 

#define IGcadLeader_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadLeader_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadLeader_get_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_VerticalTextPosition(This,Type) ) 

#define IGcadLeader_put_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_VerticalTextPosition(This,Type) ) 

#define IGcadLeader_get_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> get_TextGap(This,Offset) ) 

#define IGcadLeader_put_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> put_TextGap(This,Offset) ) 

#define IGcadLeader_get_ArrowheadBlock(This,BlockName)	\
    ( (This)->lpVtbl -> get_ArrowheadBlock(This,BlockName) ) 

#define IGcadLeader_put_ArrowheadBlock(This,BlockName)	\
    ( (This)->lpVtbl -> put_ArrowheadBlock(This,BlockName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadLeader_INTERFACE_DEFINED__ */


#ifndef __IGcadMText_INTERFACE_DEFINED__
#define __IGcadMText_INTERFACE_DEFINED__

/* interface IGcadMText */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadMText;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("50FA2201-1260-4323-8C00-3EA7E36680B6")
    IGcadMText : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextString( 
            /* [retval][out] */ BSTR *bstrText) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextString( 
            /* [in] */ BSTR bstrText) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StyleName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AttachmentPoint( 
            /* [retval][out] */ GcAttachmentPoint *attPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AttachmentPoint( 
            /* [in] */ GcAttachmentPoint attPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DrawingDirection( 
            /* [retval][out] */ GcDrawingDirection *drawDir) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DrawingDirection( 
            /* [in] */ GcDrawingDirection drawDir) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Width( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsertionPoint( 
            /* [retval][out] */ VARIANT *insPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_InsertionPoint( 
            /* [in] */ VARIANT insPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LineSpacingFactor( 
            /* [retval][out] */ double *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LineSpacingFactor( 
            /* [in] */ double factor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LineSpacingStyle( 
            /* [retval][out] */ GcLineSpacingStyle *style) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LineSpacingStyle( 
            /* [in] */ GcLineSpacingStyle style) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LineSpacingDistance( 
            /* [retval][out] */ double *Value) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LineSpacingDistance( 
            /* [in] */ double Value) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackgroundFill( 
            /* [retval][out] */ VARIANT_BOOL *bUseBackgroundFill) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackgroundFill( 
            /* [in] */ VARIANT_BOOL bUseBackgroundFill) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FieldCode( 
            /* [retval][out] */ BSTR *bstrText) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadMTextVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadMText * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadMText * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadMText * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadMText * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadMText * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadMText * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadMText * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadMText * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadMText * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadMText * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadMText * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadMText * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadMText * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadMText * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadMText * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadMText * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadMText * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadMText * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadMText * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadMText * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadMText * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadMText * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadMText * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadMText * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadMText * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadMText * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadMText * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadMText * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadMText * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadMText * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadMText * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadMText * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadMText * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadMText * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadMText * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadMText * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadMText * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadMText * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadMText * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadMText * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadMText * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadMText * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadMText * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadMText * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadMText * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadMText * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadMText * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadMText * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadMText * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadMText * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadMText * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadMText * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadMText * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadMText * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadMText * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadMText * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadMText * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_TextString)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextString )( 
            IGcadMText * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_TextString)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextString )( 
            IGcadMText * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadMText * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadMText * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_AttachmentPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AttachmentPoint )( 
            IGcadMText * This,
            /* [retval][out] */ GcAttachmentPoint *attPoint);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_AttachmentPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AttachmentPoint )( 
            IGcadMText * This,
            /* [in] */ GcAttachmentPoint attPoint);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_DrawingDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DrawingDirection )( 
            IGcadMText * This,
            /* [retval][out] */ GcDrawingDirection *drawDir);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_DrawingDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DrawingDirection )( 
            IGcadMText * This,
            /* [in] */ GcDrawingDirection drawDir);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadMText * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_Width)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( 
            IGcadMText * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadMText * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadMText * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadMText * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadMText * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadMText * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadMText * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadMText * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadMText * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_LineSpacingFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LineSpacingFactor )( 
            IGcadMText * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_LineSpacingFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LineSpacingFactor )( 
            IGcadMText * This,
            /* [in] */ double factor);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_LineSpacingStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LineSpacingStyle )( 
            IGcadMText * This,
            /* [retval][out] */ GcLineSpacingStyle *style);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_LineSpacingStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LineSpacingStyle )( 
            IGcadMText * This,
            /* [in] */ GcLineSpacingStyle style);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_LineSpacingDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LineSpacingDistance )( 
            IGcadMText * This,
            /* [retval][out] */ double *Value);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_LineSpacingDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LineSpacingDistance )( 
            IGcadMText * This,
            /* [in] */ double Value);
        
        DECLSPEC_XFGVIRT(IGcadMText, get_BackgroundFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundFill )( 
            IGcadMText * This,
            /* [retval][out] */ VARIANT_BOOL *bUseBackgroundFill);
        
        DECLSPEC_XFGVIRT(IGcadMText, put_BackgroundFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundFill )( 
            IGcadMText * This,
            /* [in] */ VARIANT_BOOL bUseBackgroundFill);
        
        DECLSPEC_XFGVIRT(IGcadMText, FieldCode)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FieldCode )( 
            IGcadMText * This,
            /* [retval][out] */ BSTR *bstrText);
        
        END_INTERFACE
    } IGcadMTextVtbl;

    interface IGcadMText
    {
        CONST_VTBL struct IGcadMTextVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadMText_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadMText_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadMText_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadMText_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadMText_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadMText_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadMText_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadMText_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadMText_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadMText_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadMText_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadMText_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadMText_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadMText_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadMText_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadMText_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadMText_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadMText_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadMText_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadMText_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadMText_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadMText_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadMText_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadMText_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadMText_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadMText_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadMText_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadMText_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadMText_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadMText_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadMText_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadMText_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadMText_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadMText_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadMText_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadMText_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadMText_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadMText_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadMText_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadMText_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadMText_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadMText_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadMText_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadMText_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadMText_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadMText_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadMText_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadMText_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadMText_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadMText_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadMText_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadMText_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadMText_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadMText_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadMText_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadMText_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadMText_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadMText_get_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextString(This,bstrText) ) 

#define IGcadMText_put_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextString(This,bstrText) ) 

#define IGcadMText_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadMText_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadMText_get_AttachmentPoint(This,attPoint)	\
    ( (This)->lpVtbl -> get_AttachmentPoint(This,attPoint) ) 

#define IGcadMText_put_AttachmentPoint(This,attPoint)	\
    ( (This)->lpVtbl -> put_AttachmentPoint(This,attPoint) ) 

#define IGcadMText_get_DrawingDirection(This,drawDir)	\
    ( (This)->lpVtbl -> get_DrawingDirection(This,drawDir) ) 

#define IGcadMText_put_DrawingDirection(This,drawDir)	\
    ( (This)->lpVtbl -> put_DrawingDirection(This,drawDir) ) 

#define IGcadMText_get_Width(This,Width)	\
    ( (This)->lpVtbl -> get_Width(This,Width) ) 

#define IGcadMText_put_Width(This,Width)	\
    ( (This)->lpVtbl -> put_Width(This,Width) ) 

#define IGcadMText_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadMText_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadMText_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadMText_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadMText_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadMText_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadMText_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadMText_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadMText_get_LineSpacingFactor(This,factor)	\
    ( (This)->lpVtbl -> get_LineSpacingFactor(This,factor) ) 

#define IGcadMText_put_LineSpacingFactor(This,factor)	\
    ( (This)->lpVtbl -> put_LineSpacingFactor(This,factor) ) 

#define IGcadMText_get_LineSpacingStyle(This,style)	\
    ( (This)->lpVtbl -> get_LineSpacingStyle(This,style) ) 

#define IGcadMText_put_LineSpacingStyle(This,style)	\
    ( (This)->lpVtbl -> put_LineSpacingStyle(This,style) ) 

#define IGcadMText_get_LineSpacingDistance(This,Value)	\
    ( (This)->lpVtbl -> get_LineSpacingDistance(This,Value) ) 

#define IGcadMText_put_LineSpacingDistance(This,Value)	\
    ( (This)->lpVtbl -> put_LineSpacingDistance(This,Value) ) 

#define IGcadMText_get_BackgroundFill(This,bUseBackgroundFill)	\
    ( (This)->lpVtbl -> get_BackgroundFill(This,bUseBackgroundFill) ) 

#define IGcadMText_put_BackgroundFill(This,bUseBackgroundFill)	\
    ( (This)->lpVtbl -> put_BackgroundFill(This,bUseBackgroundFill) ) 

#define IGcadMText_FieldCode(This,bstrText)	\
    ( (This)->lpVtbl -> FieldCode(This,bstrText) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadMText_INTERFACE_DEFINED__ */


#ifndef __IGcadPoint_INTERFACE_DEFINED__
#define __IGcadPoint_INTERFACE_DEFINED__

/* interface IGcadPoint */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadPoint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E2A6DDD8-204E-4A0B-9F0B-C27640B98B7A")
    IGcadPoint : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *Coordinates) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT Coordinates) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPointVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPoint * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPoint * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPoint * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPoint * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPoint * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPoint * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPoint * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPoint * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPoint * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPoint * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPoint * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPoint * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPoint * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPoint * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPoint * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPoint * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPoint * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPoint * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPoint * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPoint * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadPoint * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadPoint * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadPoint * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadPoint * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadPoint * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadPoint * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadPoint * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadPoint * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadPoint * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadPoint * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadPoint * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadPoint * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadPoint * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadPoint * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadPoint * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadPoint * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadPoint * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadPoint * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadPoint * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadPoint * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadPoint * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadPoint * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadPoint * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadPoint * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadPoint * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadPoint * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadPoint * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadPoint * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadPoint * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadPoint * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadPoint * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadPoint * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadPoint * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadPoint * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadPoint * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadPoint * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadPoint * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadPoint, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcadPoint * This,
            /* [retval][out] */ VARIANT *Coordinates);
        
        DECLSPEC_XFGVIRT(IGcadPoint, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcadPoint * This,
            /* [in] */ VARIANT Coordinates);
        
        DECLSPEC_XFGVIRT(IGcadPoint, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadPoint * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadPoint, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadPoint * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadPoint, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadPoint * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadPoint, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadPoint * This,
            /* [in] */ double Thickness);
        
        END_INTERFACE
    } IGcadPointVtbl;

    interface IGcadPoint
    {
        CONST_VTBL struct IGcadPointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPoint_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPoint_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPoint_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPoint_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPoint_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPoint_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPoint_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPoint_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPoint_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPoint_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPoint_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPoint_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPoint_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPoint_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPoint_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPoint_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPoint_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPoint_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPoint_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPoint_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPoint_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadPoint_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadPoint_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadPoint_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadPoint_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadPoint_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadPoint_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadPoint_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadPoint_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadPoint_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadPoint_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadPoint_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadPoint_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadPoint_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadPoint_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadPoint_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadPoint_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadPoint_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadPoint_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadPoint_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadPoint_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadPoint_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadPoint_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadPoint_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadPoint_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadPoint_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadPoint_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadPoint_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadPoint_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadPoint_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadPoint_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadPoint_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadPoint_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadPoint_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadPoint_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadPoint_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadPoint_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadPoint_get_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> get_Coordinates(This,Coordinates) ) 

#define IGcadPoint_put_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> put_Coordinates(This,Coordinates) ) 

#define IGcadPoint_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadPoint_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadPoint_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadPoint_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPoint_INTERFACE_DEFINED__ */


#ifndef __IGcadLWPolyline_INTERFACE_DEFINED__
#define __IGcadLWPolyline_INTERFACE_DEFINED__

/* interface IGcadLWPolyline */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadLWPolyline;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B32517C5-036E-4CB0-8538-66BD5FC625C4")
    IGcadLWPolyline : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *Coordinates) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT Coordinates) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddVertex( 
            /* [in] */ int Index,
            /* [in] */ VARIANT vertex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Explode( 
            /* [retval][out] */ VARIANT *pArrayObjs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBulge( 
            /* [in] */ int Index,
            /* [retval][out] */ double *bulge) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBulge( 
            /* [in] */ int Index,
            /* [in] */ double bulge) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetWidth( 
            /* [in] */ int Index,
            /* [out] */ double *StartWidth,
            /* [out] */ double *EndWidth) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetWidth( 
            /* [in] */ int Index,
            /* [in] */ double StartWidth,
            /* [in] */ double EndWidth) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ConstantWidth( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ConstantWidth( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Offset( 
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Elevation( 
            /* [retval][out] */ double *Elevation) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Elevation( 
            /* [in] */ double Elevation) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Area( 
            /* [retval][out] */ double *Area) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinate( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinate( 
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Closed( 
            /* [retval][out] */ VARIANT_BOOL *fClose) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Closed( 
            /* [in] */ VARIANT_BOOL fClose) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LinetypeGeneration( 
            /* [retval][out] */ VARIANT_BOOL *bLinetypeGen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LinetypeGeneration( 
            /* [in] */ VARIANT_BOOL bLinetypeGen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Length( 
            /* [retval][out] */ double *Length) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadLWPolylineVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadLWPolyline * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadLWPolyline * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadLWPolyline * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadLWPolyline * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadLWPolyline * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadLWPolyline * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadLWPolyline * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadLWPolyline * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadLWPolyline * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadLWPolyline * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadLWPolyline * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadLWPolyline * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadLWPolyline * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadLWPolyline * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadLWPolyline * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadLWPolyline * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadLWPolyline * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadLWPolyline * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadLWPolyline * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadLWPolyline * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadLWPolyline * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadLWPolyline * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadLWPolyline * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadLWPolyline * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ VARIANT *Coordinates);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT Coordinates);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadLWPolyline * This,
            /* [in] */ double Thickness);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, AddVertex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddVertex )( 
            IGcadLWPolyline * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT vertex);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, Explode)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Explode )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, GetBulge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBulge )( 
            IGcadLWPolyline * This,
            /* [in] */ int Index,
            /* [retval][out] */ double *bulge);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, SetBulge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBulge )( 
            IGcadLWPolyline * This,
            /* [in] */ int Index,
            /* [in] */ double bulge);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, GetWidth)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetWidth )( 
            IGcadLWPolyline * This,
            /* [in] */ int Index,
            /* [out] */ double *StartWidth,
            /* [out] */ double *EndWidth);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, SetWidth)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWidth )( 
            IGcadLWPolyline * This,
            /* [in] */ int Index,
            /* [in] */ double StartWidth,
            /* [in] */ double EndWidth);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, get_ConstantWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConstantWidth )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, put_ConstantWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConstantWidth )( 
            IGcadLWPolyline * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, Offset)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Offset )( 
            IGcadLWPolyline * This,
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, get_Elevation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Elevation )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ double *Elevation);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, put_Elevation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Elevation )( 
            IGcadLWPolyline * This,
            /* [in] */ double Elevation);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, get_Area)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Area )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ double *Area);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcadLWPolyline * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcadLWPolyline * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, get_Closed)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Closed )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ VARIANT_BOOL *fClose);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, put_Closed)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Closed )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT_BOOL fClose);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, get_LinetypeGeneration)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeGeneration )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ VARIANT_BOOL *bLinetypeGen);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, put_LinetypeGeneration)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeGeneration )( 
            IGcadLWPolyline * This,
            /* [in] */ VARIANT_BOOL bLinetypeGen);
        
        DECLSPEC_XFGVIRT(IGcadLWPolyline, get_Length)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
            IGcadLWPolyline * This,
            /* [retval][out] */ double *Length);
        
        END_INTERFACE
    } IGcadLWPolylineVtbl;

    interface IGcadLWPolyline
    {
        CONST_VTBL struct IGcadLWPolylineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadLWPolyline_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadLWPolyline_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadLWPolyline_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadLWPolyline_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadLWPolyline_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadLWPolyline_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadLWPolyline_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadLWPolyline_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadLWPolyline_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadLWPolyline_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadLWPolyline_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadLWPolyline_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadLWPolyline_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadLWPolyline_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadLWPolyline_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadLWPolyline_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadLWPolyline_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadLWPolyline_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadLWPolyline_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadLWPolyline_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadLWPolyline_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadLWPolyline_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadLWPolyline_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadLWPolyline_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadLWPolyline_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadLWPolyline_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadLWPolyline_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadLWPolyline_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadLWPolyline_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadLWPolyline_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadLWPolyline_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadLWPolyline_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadLWPolyline_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadLWPolyline_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadLWPolyline_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadLWPolyline_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadLWPolyline_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadLWPolyline_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadLWPolyline_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadLWPolyline_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadLWPolyline_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadLWPolyline_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadLWPolyline_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadLWPolyline_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadLWPolyline_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadLWPolyline_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadLWPolyline_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadLWPolyline_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadLWPolyline_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadLWPolyline_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadLWPolyline_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadLWPolyline_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadLWPolyline_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadLWPolyline_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadLWPolyline_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadLWPolyline_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadLWPolyline_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadLWPolyline_get_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> get_Coordinates(This,Coordinates) ) 

#define IGcadLWPolyline_put_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> put_Coordinates(This,Coordinates) ) 

#define IGcadLWPolyline_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadLWPolyline_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadLWPolyline_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadLWPolyline_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#define IGcadLWPolyline_AddVertex(This,Index,vertex)	\
    ( (This)->lpVtbl -> AddVertex(This,Index,vertex) ) 

#define IGcadLWPolyline_Explode(This,pArrayObjs)	\
    ( (This)->lpVtbl -> Explode(This,pArrayObjs) ) 

#define IGcadLWPolyline_GetBulge(This,Index,bulge)	\
    ( (This)->lpVtbl -> GetBulge(This,Index,bulge) ) 

#define IGcadLWPolyline_SetBulge(This,Index,bulge)	\
    ( (This)->lpVtbl -> SetBulge(This,Index,bulge) ) 

#define IGcadLWPolyline_GetWidth(This,Index,StartWidth,EndWidth)	\
    ( (This)->lpVtbl -> GetWidth(This,Index,StartWidth,EndWidth) ) 

#define IGcadLWPolyline_SetWidth(This,Index,StartWidth,EndWidth)	\
    ( (This)->lpVtbl -> SetWidth(This,Index,StartWidth,EndWidth) ) 

#define IGcadLWPolyline_get_ConstantWidth(This,Width)	\
    ( (This)->lpVtbl -> get_ConstantWidth(This,Width) ) 

#define IGcadLWPolyline_put_ConstantWidth(This,Width)	\
    ( (This)->lpVtbl -> put_ConstantWidth(This,Width) ) 

#define IGcadLWPolyline_Offset(This,Distance,pOffsetCurves)	\
    ( (This)->lpVtbl -> Offset(This,Distance,pOffsetCurves) ) 

#define IGcadLWPolyline_get_Elevation(This,Elevation)	\
    ( (This)->lpVtbl -> get_Elevation(This,Elevation) ) 

#define IGcadLWPolyline_put_Elevation(This,Elevation)	\
    ( (This)->lpVtbl -> put_Elevation(This,Elevation) ) 

#define IGcadLWPolyline_get_Area(This,Area)	\
    ( (This)->lpVtbl -> get_Area(This,Area) ) 

#define IGcadLWPolyline_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcadLWPolyline_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#define IGcadLWPolyline_get_Closed(This,fClose)	\
    ( (This)->lpVtbl -> get_Closed(This,fClose) ) 

#define IGcadLWPolyline_put_Closed(This,fClose)	\
    ( (This)->lpVtbl -> put_Closed(This,fClose) ) 

#define IGcadLWPolyline_get_LinetypeGeneration(This,bLinetypeGen)	\
    ( (This)->lpVtbl -> get_LinetypeGeneration(This,bLinetypeGen) ) 

#define IGcadLWPolyline_put_LinetypeGeneration(This,bLinetypeGen)	\
    ( (This)->lpVtbl -> put_LinetypeGeneration(This,bLinetypeGen) ) 

#define IGcadLWPolyline_get_Length(This,Length)	\
    ( (This)->lpVtbl -> get_Length(This,Length) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadLWPolyline_INTERFACE_DEFINED__ */


#ifndef __IGcadPolyline_INTERFACE_DEFINED__
#define __IGcadPolyline_INTERFACE_DEFINED__

/* interface IGcadPolyline */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadPolyline;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("780E9428-D7F9-4F96-8E91-55C8F3CF3082")
    IGcadPolyline : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *Coordinates) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT Coordinates) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AppendVertex( 
            /* [in] */ VARIANT vertex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Explode( 
            /* [retval][out] */ VARIANT *pArrayObjs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBulge( 
            /* [in] */ int Index,
            /* [retval][out] */ double *bulge) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBulge( 
            /* [in] */ int Index,
            /* [in] */ double bulge) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetWidth( 
            /* [in] */ int Index,
            /* [out] */ double *StartWidth,
            double *EndWidth) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetWidth( 
            /* [in] */ int Index,
            /* [in] */ double StartWidth,
            double EndWidth) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ConstantWidth( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ConstantWidth( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Offset( 
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Elevation( 
            /* [retval][out] */ double *Elevation) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Elevation( 
            /* [in] */ double Elevation) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ GcPolylineType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Type( 
            /* [in] */ GcPolylineType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Closed( 
            /* [retval][out] */ VARIANT_BOOL *fClose) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Closed( 
            /* [in] */ VARIANT_BOOL fClose) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LinetypeGeneration( 
            /* [retval][out] */ VARIANT_BOOL *bLinetypeGen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LinetypeGeneration( 
            /* [in] */ VARIANT_BOOL bLinetypeGen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Area( 
            /* [retval][out] */ double *Area) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinate( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinate( 
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Length( 
            /* [retval][out] */ double *Length) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPolylineVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPolyline * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPolyline * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPolyline * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPolyline * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPolyline * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPolyline * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPolyline * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPolyline * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPolyline * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPolyline * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPolyline * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPolyline * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPolyline * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPolyline * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPolyline * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPolyline * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPolyline * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPolyline * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPolyline * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadPolyline * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadPolyline * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadPolyline * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadPolyline * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadPolyline * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadPolyline * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadPolyline * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadPolyline * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadPolyline * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadPolyline * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadPolyline * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadPolyline * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadPolyline * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadPolyline * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadPolyline * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadPolyline * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadPolyline * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadPolyline * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadPolyline * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadPolyline * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadPolyline * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadPolyline * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadPolyline * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadPolyline * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadPolyline * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadPolyline * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadPolyline * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadPolyline * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcadPolyline * This,
            /* [retval][out] */ VARIANT *Coordinates);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT Coordinates);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadPolyline * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadPolyline * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadPolyline * This,
            /* [in] */ double Thickness);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, AppendVertex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AppendVertex )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT vertex);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, Explode)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Explode )( 
            IGcadPolyline * This,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, GetBulge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBulge )( 
            IGcadPolyline * This,
            /* [in] */ int Index,
            /* [retval][out] */ double *bulge);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, SetBulge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBulge )( 
            IGcadPolyline * This,
            /* [in] */ int Index,
            /* [in] */ double bulge);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, GetWidth)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetWidth )( 
            IGcadPolyline * This,
            /* [in] */ int Index,
            /* [out] */ double *StartWidth,
            double *EndWidth);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, SetWidth)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWidth )( 
            IGcadPolyline * This,
            /* [in] */ int Index,
            /* [in] */ double StartWidth,
            double EndWidth);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, get_ConstantWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConstantWidth )( 
            IGcadPolyline * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, put_ConstantWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConstantWidth )( 
            IGcadPolyline * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, Offset)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Offset )( 
            IGcadPolyline * This,
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, get_Elevation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Elevation )( 
            IGcadPolyline * This,
            /* [retval][out] */ double *Elevation);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, put_Elevation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Elevation )( 
            IGcadPolyline * This,
            /* [in] */ double Elevation);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, get_Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            IGcadPolyline * This,
            /* [retval][out] */ GcPolylineType *Type);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, put_Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Type )( 
            IGcadPolyline * This,
            /* [in] */ GcPolylineType Type);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, get_Closed)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Closed )( 
            IGcadPolyline * This,
            /* [retval][out] */ VARIANT_BOOL *fClose);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, put_Closed)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Closed )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT_BOOL fClose);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, get_LinetypeGeneration)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeGeneration )( 
            IGcadPolyline * This,
            /* [retval][out] */ VARIANT_BOOL *bLinetypeGen);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, put_LinetypeGeneration)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeGeneration )( 
            IGcadPolyline * This,
            /* [in] */ VARIANT_BOOL bLinetypeGen);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, get_Area)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Area )( 
            IGcadPolyline * This,
            /* [retval][out] */ double *Area);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcadPolyline * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcadPolyline * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadPolyline, get_Length)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
            IGcadPolyline * This,
            /* [retval][out] */ double *Length);
        
        END_INTERFACE
    } IGcadPolylineVtbl;

    interface IGcadPolyline
    {
        CONST_VTBL struct IGcadPolylineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPolyline_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPolyline_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPolyline_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPolyline_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPolyline_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPolyline_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPolyline_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPolyline_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPolyline_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPolyline_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPolyline_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPolyline_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPolyline_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPolyline_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPolyline_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPolyline_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPolyline_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPolyline_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPolyline_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPolyline_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPolyline_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadPolyline_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadPolyline_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadPolyline_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadPolyline_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadPolyline_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadPolyline_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadPolyline_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadPolyline_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadPolyline_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadPolyline_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadPolyline_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadPolyline_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadPolyline_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadPolyline_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadPolyline_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadPolyline_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadPolyline_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadPolyline_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadPolyline_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadPolyline_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadPolyline_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadPolyline_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadPolyline_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadPolyline_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadPolyline_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadPolyline_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadPolyline_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadPolyline_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadPolyline_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadPolyline_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadPolyline_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadPolyline_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadPolyline_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadPolyline_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadPolyline_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadPolyline_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadPolyline_get_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> get_Coordinates(This,Coordinates) ) 

#define IGcadPolyline_put_Coordinates(This,Coordinates)	\
    ( (This)->lpVtbl -> put_Coordinates(This,Coordinates) ) 

#define IGcadPolyline_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadPolyline_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadPolyline_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadPolyline_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#define IGcadPolyline_AppendVertex(This,vertex)	\
    ( (This)->lpVtbl -> AppendVertex(This,vertex) ) 

#define IGcadPolyline_Explode(This,pArrayObjs)	\
    ( (This)->lpVtbl -> Explode(This,pArrayObjs) ) 

#define IGcadPolyline_GetBulge(This,Index,bulge)	\
    ( (This)->lpVtbl -> GetBulge(This,Index,bulge) ) 

#define IGcadPolyline_SetBulge(This,Index,bulge)	\
    ( (This)->lpVtbl -> SetBulge(This,Index,bulge) ) 

#define IGcadPolyline_GetWidth(This,Index,StartWidth,EndWidth)	\
    ( (This)->lpVtbl -> GetWidth(This,Index,StartWidth,EndWidth) ) 

#define IGcadPolyline_SetWidth(This,Index,StartWidth,EndWidth)	\
    ( (This)->lpVtbl -> SetWidth(This,Index,StartWidth,EndWidth) ) 

#define IGcadPolyline_get_ConstantWidth(This,Width)	\
    ( (This)->lpVtbl -> get_ConstantWidth(This,Width) ) 

#define IGcadPolyline_put_ConstantWidth(This,Width)	\
    ( (This)->lpVtbl -> put_ConstantWidth(This,Width) ) 

#define IGcadPolyline_Offset(This,Distance,pOffsetCurves)	\
    ( (This)->lpVtbl -> Offset(This,Distance,pOffsetCurves) ) 

#define IGcadPolyline_get_Elevation(This,Elevation)	\
    ( (This)->lpVtbl -> get_Elevation(This,Elevation) ) 

#define IGcadPolyline_put_Elevation(This,Elevation)	\
    ( (This)->lpVtbl -> put_Elevation(This,Elevation) ) 

#define IGcadPolyline_get_Type(This,Type)	\
    ( (This)->lpVtbl -> get_Type(This,Type) ) 

#define IGcadPolyline_put_Type(This,Type)	\
    ( (This)->lpVtbl -> put_Type(This,Type) ) 

#define IGcadPolyline_get_Closed(This,fClose)	\
    ( (This)->lpVtbl -> get_Closed(This,fClose) ) 

#define IGcadPolyline_put_Closed(This,fClose)	\
    ( (This)->lpVtbl -> put_Closed(This,fClose) ) 

#define IGcadPolyline_get_LinetypeGeneration(This,bLinetypeGen)	\
    ( (This)->lpVtbl -> get_LinetypeGeneration(This,bLinetypeGen) ) 

#define IGcadPolyline_put_LinetypeGeneration(This,bLinetypeGen)	\
    ( (This)->lpVtbl -> put_LinetypeGeneration(This,bLinetypeGen) ) 

#define IGcadPolyline_get_Area(This,Area)	\
    ( (This)->lpVtbl -> get_Area(This,Area) ) 

#define IGcadPolyline_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcadPolyline_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#define IGcadPolyline_get_Length(This,Length)	\
    ( (This)->lpVtbl -> get_Length(This,Length) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPolyline_INTERFACE_DEFINED__ */


#ifndef __IGcadRay_INTERFACE_DEFINED__
#define __IGcadRay_INTERFACE_DEFINED__

/* interface IGcadRay */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadRay;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D05D772F-86F6-4B10-9898-E22BF8C5F192")
    IGcadRay : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BasePoint( 
            /* [retval][out] */ VARIANT *BasePoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BasePoint( 
            /* [in] */ VARIANT BasePoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SecondPoint( 
            /* [retval][out] */ VARIANT *SecondPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SecondPoint( 
            /* [in] */ VARIANT SecondPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DirectionVector( 
            /* [retval][out] */ VARIANT *dirVector) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DirectionVector( 
            /* [in] */ VARIANT dirVector) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadRayVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadRay * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadRay * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadRay * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadRay * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadRay * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadRay * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadRay * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadRay * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadRay * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadRay * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadRay * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadRay * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadRay * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadRay * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadRay * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadRay * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadRay * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadRay * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadRay * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadRay * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadRay * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadRay * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadRay * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadRay * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadRay * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadRay * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadRay * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadRay * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadRay * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadRay * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadRay * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadRay * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadRay * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadRay * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadRay * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadRay * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadRay * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadRay * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadRay * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadRay * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadRay * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadRay * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadRay * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadRay * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadRay * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadRay * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadRay * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadRay * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadRay * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadRay * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadRay * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadRay * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadRay * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadRay * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadRay * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadRay * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadRay * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadRay, get_BasePoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BasePoint )( 
            IGcadRay * This,
            /* [retval][out] */ VARIANT *BasePoint);
        
        DECLSPEC_XFGVIRT(IGcadRay, put_BasePoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BasePoint )( 
            IGcadRay * This,
            /* [in] */ VARIANT BasePoint);
        
        DECLSPEC_XFGVIRT(IGcadRay, get_SecondPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecondPoint )( 
            IGcadRay * This,
            /* [retval][out] */ VARIANT *SecondPoint);
        
        DECLSPEC_XFGVIRT(IGcadRay, put_SecondPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SecondPoint )( 
            IGcadRay * This,
            /* [in] */ VARIANT SecondPoint);
        
        DECLSPEC_XFGVIRT(IGcadRay, get_DirectionVector)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DirectionVector )( 
            IGcadRay * This,
            /* [retval][out] */ VARIANT *dirVector);
        
        DECLSPEC_XFGVIRT(IGcadRay, put_DirectionVector)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DirectionVector )( 
            IGcadRay * This,
            /* [in] */ VARIANT dirVector);
        
        END_INTERFACE
    } IGcadRayVtbl;

    interface IGcadRay
    {
        CONST_VTBL struct IGcadRayVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadRay_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadRay_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadRay_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadRay_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadRay_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadRay_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadRay_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadRay_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadRay_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadRay_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadRay_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadRay_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadRay_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadRay_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadRay_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadRay_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadRay_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadRay_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadRay_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadRay_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadRay_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadRay_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadRay_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadRay_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadRay_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadRay_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadRay_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadRay_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadRay_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadRay_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadRay_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadRay_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadRay_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadRay_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadRay_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadRay_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadRay_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadRay_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadRay_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadRay_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadRay_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadRay_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadRay_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadRay_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadRay_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadRay_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadRay_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadRay_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadRay_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadRay_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadRay_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadRay_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadRay_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadRay_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadRay_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadRay_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadRay_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadRay_get_BasePoint(This,BasePoint)	\
    ( (This)->lpVtbl -> get_BasePoint(This,BasePoint) ) 

#define IGcadRay_put_BasePoint(This,BasePoint)	\
    ( (This)->lpVtbl -> put_BasePoint(This,BasePoint) ) 

#define IGcadRay_get_SecondPoint(This,SecondPoint)	\
    ( (This)->lpVtbl -> get_SecondPoint(This,SecondPoint) ) 

#define IGcadRay_put_SecondPoint(This,SecondPoint)	\
    ( (This)->lpVtbl -> put_SecondPoint(This,SecondPoint) ) 

#define IGcadRay_get_DirectionVector(This,dirVector)	\
    ( (This)->lpVtbl -> get_DirectionVector(This,dirVector) ) 

#define IGcadRay_put_DirectionVector(This,dirVector)	\
    ( (This)->lpVtbl -> put_DirectionVector(This,dirVector) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadRay_INTERFACE_DEFINED__ */


#ifndef __IGcadShape_INTERFACE_DEFINED__
#define __IGcadShape_INTERFACE_DEFINED__

/* interface IGcadShape */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadShape;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("850C5DB8-5052-4C0B-99B7-C0A385ECE85F")
    IGcadShape : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsertionPoint( 
            /* [retval][out] */ VARIANT *insPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_InsertionPoint( 
            /* [in] */ VARIANT insPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *scalFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor( 
            /* [in] */ GCAD_NOUNITS scalFactor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObliqueAngle( 
            /* [retval][out] */ GCAD_ANGLE *obliAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ObliqueAngle( 
            /* [in] */ GCAD_ANGLE obliAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadShapeVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadShape * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadShape * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadShape * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadShape * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadShape * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadShape * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadShape * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadShape * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadShape * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadShape * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadShape * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadShape * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadShape * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadShape * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadShape * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadShape * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadShape * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadShape * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadShape * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadShape * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadShape * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadShape * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadShape * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadShape * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadShape * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadShape * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadShape * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadShape * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadShape * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadShape * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadShape * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadShape * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadShape * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadShape * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadShape * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadShape * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadShape * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadShape * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadShape * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadShape * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadShape * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadShape * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadShape * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadShape * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadShape * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadShape * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadShape * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadShape * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadShape * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadShape * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadShape * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadShape * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadShape * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadShape * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadShape * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadShape * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadShape * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadShape, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadShape * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadShape, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadShape * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadShape, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadShape * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadShape, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadShape * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadShape, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadShape * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadShape, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadShape * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadShape, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadShape * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadShape, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadShape * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadShape, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadShape * This,
            /* [retval][out] */ GCAD_NOUNITS *scalFactor);
        
        DECLSPEC_XFGVIRT(IGcadShape, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadShape * This,
            /* [in] */ GCAD_NOUNITS scalFactor);
        
        DECLSPEC_XFGVIRT(IGcadShape, get_ObliqueAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObliqueAngle )( 
            IGcadShape * This,
            /* [retval][out] */ GCAD_ANGLE *obliAngle);
        
        DECLSPEC_XFGVIRT(IGcadShape, put_ObliqueAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ObliqueAngle )( 
            IGcadShape * This,
            /* [in] */ GCAD_ANGLE obliAngle);
        
        DECLSPEC_XFGVIRT(IGcadShape, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadShape * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadShape, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadShape * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadShape, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadShape * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadShape, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadShape * This,
            /* [in] */ double Thickness);
        
        END_INTERFACE
    } IGcadShapeVtbl;

    interface IGcadShape
    {
        CONST_VTBL struct IGcadShapeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadShape_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadShape_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadShape_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadShape_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadShape_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadShape_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadShape_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadShape_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadShape_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadShape_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadShape_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadShape_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadShape_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadShape_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadShape_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadShape_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadShape_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadShape_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadShape_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadShape_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadShape_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadShape_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadShape_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadShape_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadShape_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadShape_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadShape_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadShape_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadShape_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadShape_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadShape_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadShape_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadShape_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadShape_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadShape_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadShape_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadShape_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadShape_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadShape_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadShape_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadShape_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadShape_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadShape_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadShape_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadShape_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadShape_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadShape_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadShape_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadShape_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadShape_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadShape_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadShape_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadShape_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadShape_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadShape_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadShape_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadShape_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadShape_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadShape_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadShape_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadShape_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadShape_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadShape_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadShape_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadShape_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadShape_get_ScaleFactor(This,scalFactor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,scalFactor) ) 

#define IGcadShape_put_ScaleFactor(This,scalFactor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,scalFactor) ) 

#define IGcadShape_get_ObliqueAngle(This,obliAngle)	\
    ( (This)->lpVtbl -> get_ObliqueAngle(This,obliAngle) ) 

#define IGcadShape_put_ObliqueAngle(This,obliAngle)	\
    ( (This)->lpVtbl -> put_ObliqueAngle(This,obliAngle) ) 

#define IGcadShape_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadShape_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadShape_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadShape_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadShape_INTERFACE_DEFINED__ */


#ifndef __IGcadSolid_INTERFACE_DEFINED__
#define __IGcadSolid_INTERFACE_DEFINED__

/* interface IGcadSolid */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadSolid;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("38D2992F-DF38-497F-9E2B-68D813057E8D")
    IGcadSolid : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *corners) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT corners) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinate( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinate( 
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSolidVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSolid * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSolid * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSolid * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSolid * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSolid * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSolid * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSolid * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadSolid * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSolid * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadSolid * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadSolid * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadSolid * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadSolid * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadSolid * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadSolid * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadSolid * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadSolid * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadSolid * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadSolid * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadSolid * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadSolid * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadSolid * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSolid * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadSolid * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSolid * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadSolid * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSolid * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadSolid * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadSolid * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadSolid * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadSolid * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadSolid * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadSolid * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadSolid * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadSolid * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadSolid * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadSolid * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadSolid * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadSolid * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadSolid * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadSolid * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadSolid * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadSolid * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadSolid * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSolid * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadSolid * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSolid * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadSolid * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadSolid * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadSolid * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSolid * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadSolid * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadSolid * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadSolid * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadSolid * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSolid * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSolid * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSolid, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcadSolid * This,
            /* [retval][out] */ VARIANT *corners);
        
        DECLSPEC_XFGVIRT(IGcadSolid, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcadSolid * This,
            /* [in] */ VARIANT corners);
        
        DECLSPEC_XFGVIRT(IGcadSolid, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadSolid * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadSolid, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadSolid * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadSolid, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadSolid * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadSolid, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadSolid * This,
            /* [in] */ double Thickness);
        
        DECLSPEC_XFGVIRT(IGcadSolid, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcadSolid * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSolid, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcadSolid * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        END_INTERFACE
    } IGcadSolidVtbl;

    interface IGcadSolid
    {
        CONST_VTBL struct IGcadSolidVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSolid_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSolid_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSolid_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSolid_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSolid_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSolid_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSolid_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSolid_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadSolid_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSolid_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadSolid_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadSolid_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadSolid_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadSolid_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadSolid_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadSolid_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadSolid_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadSolid_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadSolid_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadSolid_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadSolid_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadSolid_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadSolid_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSolid_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadSolid_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSolid_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadSolid_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSolid_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadSolid_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadSolid_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadSolid_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadSolid_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadSolid_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadSolid_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadSolid_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadSolid_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadSolid_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadSolid_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadSolid_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadSolid_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadSolid_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadSolid_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadSolid_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadSolid_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadSolid_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSolid_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadSolid_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSolid_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadSolid_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadSolid_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadSolid_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadSolid_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadSolid_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadSolid_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadSolid_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadSolid_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadSolid_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadSolid_get_Coordinates(This,corners)	\
    ( (This)->lpVtbl -> get_Coordinates(This,corners) ) 

#define IGcadSolid_put_Coordinates(This,corners)	\
    ( (This)->lpVtbl -> put_Coordinates(This,corners) ) 

#define IGcadSolid_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadSolid_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadSolid_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadSolid_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#define IGcadSolid_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcadSolid_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSolid_INTERFACE_DEFINED__ */


#ifndef __IGcadSpline_INTERFACE_DEFINED__
#define __IGcadSpline_INTERFACE_DEFINED__

/* interface IGcadSpline */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadSpline;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3D506D60-0138-48DD-8166-E5512E441206")
    IGcadSpline : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NumberOfControlPoints( 
            /* [retval][out] */ long *numCtrlPoints) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ControlPoints( 
            /* [retval][out] */ VARIANT *controlPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ControlPoints( 
            /* [in] */ VARIANT controlPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NumberOfFitPoints( 
            /* [retval][out] */ long *numFitPoints) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FitPoints( 
            /* [retval][out] */ VARIANT *fitPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FitPoints( 
            /* [in] */ VARIANT fitPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Degree( 
            /* [retval][out] */ long *Degree) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Closed( 
            /* [retval][out] */ VARIANT_BOOL *fClose) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IsPlanar( 
            /* [retval][out] */ VARIANT_BOOL *fPlanar) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IsRational( 
            /* [retval][out] */ VARIANT_BOOL *fRational) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IsPeriodic( 
            /* [retval][out] */ VARIANT_BOOL *fPeriodic) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartTangent( 
            /* [retval][out] */ VARIANT *StartTangent) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StartTangent( 
            /* [in] */ VARIANT StartTangent) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EndTangent( 
            /* [retval][out] */ VARIANT *EndTangent) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EndTangent( 
            /* [in] */ VARIANT EndTangent) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FitTolerance( 
            /* [retval][out] */ double *fitTol) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FitTolerance( 
            /* [in] */ double fitTol) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Area( 
            /* [retval][out] */ double *Area) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetControlPoint( 
            /* [in] */ int Index,
            /* [in] */ VARIANT controlPoint) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetControlPoint( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *controlPoint) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetFitPoint( 
            /* [in] */ int Index,
            /* [in] */ VARIANT fitPoint) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFitPoint( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *fitPoint) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetWeight( 
            /* [in] */ int Index,
            /* [in] */ double weight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetWeight( 
            /* [in] */ int Index,
            /* [retval][out] */ double *weight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddFitPoint( 
            /* [in] */ int Index,
            /* [in] */ VARIANT fitPoint) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteFitPoint( 
            /* [in] */ int Index) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ElevateOrder( 
            /* [in] */ int Order) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Offset( 
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PurgeFitData( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Reverse( void) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Knots( 
            /* [retval][out] */ VARIANT *KnotValues) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Knots( 
            /* [in] */ VARIANT KnotValues) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Weights( 
            /* [retval][out] */ VARIANT *WeightValues) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Weights( 
            /* [in] */ VARIANT WeightValues) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_KnotParameterization( 
            /* [retval][out] */ GcSplineKnotParameterizationType *knotParamVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_KnotParameterization( 
            /* [in] */ GcSplineKnotParameterizationType knotParamVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SplineFrame( 
            /* [retval][out] */ GcSplineFrameType *show) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SplineFrame( 
            /* [in] */ GcSplineFrameType show) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SplineMethod( 
            /* [retval][out] */ GcSplineMethodType *method) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SplineMethod( 
            /* [in] */ GcSplineMethodType method) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Degree2( 
            /* [in] */ long Degree) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Degree2( 
            /* [retval][out] */ long *Degree) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Closed2( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Closed2( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSplineVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSpline * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSpline * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSpline * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSpline * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSpline * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSpline * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSpline * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadSpline * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSpline * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadSpline * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadSpline * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadSpline * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadSpline * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadSpline * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadSpline * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadSpline * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadSpline * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadSpline * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadSpline * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadSpline * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadSpline * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSpline * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadSpline * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSpline * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadSpline * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSpline * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadSpline * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadSpline * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadSpline * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadSpline * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadSpline * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadSpline * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadSpline * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadSpline * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadSpline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadSpline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadSpline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadSpline * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadSpline * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadSpline * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadSpline * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadSpline * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSpline * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadSpline * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSpline * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadSpline * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadSpline * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadSpline * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSpline * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadSpline * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadSpline * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadSpline * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadSpline * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSpline * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSpline * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_NumberOfControlPoints)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfControlPoints )( 
            IGcadSpline * This,
            /* [retval][out] */ long *numCtrlPoints);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_ControlPoints)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ControlPoints )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT *controlPoint);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_ControlPoints)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ControlPoints )( 
            IGcadSpline * This,
            /* [in] */ VARIANT controlPoint);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_NumberOfFitPoints)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfFitPoints )( 
            IGcadSpline * This,
            /* [retval][out] */ long *numFitPoints);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_FitPoints)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FitPoints )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT *fitPoint);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_FitPoints)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FitPoints )( 
            IGcadSpline * This,
            /* [in] */ VARIANT fitPoint);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_Degree)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Degree )( 
            IGcadSpline * This,
            /* [retval][out] */ long *Degree);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_Closed)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Closed )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT_BOOL *fClose);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_IsPlanar)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsPlanar )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT_BOOL *fPlanar);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_IsRational)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsRational )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT_BOOL *fRational);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_IsPeriodic)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsPeriodic )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT_BOOL *fPeriodic);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_StartTangent)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartTangent )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT *StartTangent);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_StartTangent)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartTangent )( 
            IGcadSpline * This,
            /* [in] */ VARIANT StartTangent);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_EndTangent)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndTangent )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT *EndTangent);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_EndTangent)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EndTangent )( 
            IGcadSpline * This,
            /* [in] */ VARIANT EndTangent);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_FitTolerance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FitTolerance )( 
            IGcadSpline * This,
            /* [retval][out] */ double *fitTol);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_FitTolerance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FitTolerance )( 
            IGcadSpline * This,
            /* [in] */ double fitTol);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_Area)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Area )( 
            IGcadSpline * This,
            /* [retval][out] */ double *Area);
        
        DECLSPEC_XFGVIRT(IGcadSpline, SetControlPoint)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetControlPoint )( 
            IGcadSpline * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT controlPoint);
        
        DECLSPEC_XFGVIRT(IGcadSpline, GetControlPoint)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetControlPoint )( 
            IGcadSpline * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *controlPoint);
        
        DECLSPEC_XFGVIRT(IGcadSpline, SetFitPoint)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetFitPoint )( 
            IGcadSpline * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT fitPoint);
        
        DECLSPEC_XFGVIRT(IGcadSpline, GetFitPoint)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFitPoint )( 
            IGcadSpline * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *fitPoint);
        
        DECLSPEC_XFGVIRT(IGcadSpline, SetWeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWeight )( 
            IGcadSpline * This,
            /* [in] */ int Index,
            /* [in] */ double weight);
        
        DECLSPEC_XFGVIRT(IGcadSpline, GetWeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetWeight )( 
            IGcadSpline * This,
            /* [in] */ int Index,
            /* [retval][out] */ double *weight);
        
        DECLSPEC_XFGVIRT(IGcadSpline, AddFitPoint)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddFitPoint )( 
            IGcadSpline * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT fitPoint);
        
        DECLSPEC_XFGVIRT(IGcadSpline, DeleteFitPoint)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteFitPoint )( 
            IGcadSpline * This,
            /* [in] */ int Index);
        
        DECLSPEC_XFGVIRT(IGcadSpline, ElevateOrder)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ElevateOrder )( 
            IGcadSpline * This,
            /* [in] */ int Order);
        
        DECLSPEC_XFGVIRT(IGcadSpline, Offset)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Offset )( 
            IGcadSpline * This,
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves);
        
        DECLSPEC_XFGVIRT(IGcadSpline, PurgeFitData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PurgeFitData )( 
            IGcadSpline * This);
        
        DECLSPEC_XFGVIRT(IGcadSpline, Reverse)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Reverse )( 
            IGcadSpline * This);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_Knots)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Knots )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT *KnotValues);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_Knots)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Knots )( 
            IGcadSpline * This,
            /* [in] */ VARIANT KnotValues);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_Weights)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Weights )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT *WeightValues);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_Weights)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Weights )( 
            IGcadSpline * This,
            /* [in] */ VARIANT WeightValues);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_KnotParameterization)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KnotParameterization )( 
            IGcadSpline * This,
            /* [retval][out] */ GcSplineKnotParameterizationType *knotParamVal);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_KnotParameterization)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KnotParameterization )( 
            IGcadSpline * This,
            /* [in] */ GcSplineKnotParameterizationType knotParamVal);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_SplineFrame)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SplineFrame )( 
            IGcadSpline * This,
            /* [retval][out] */ GcSplineFrameType *show);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_SplineFrame)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SplineFrame )( 
            IGcadSpline * This,
            /* [in] */ GcSplineFrameType show);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_SplineMethod)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SplineMethod )( 
            IGcadSpline * This,
            /* [retval][out] */ GcSplineMethodType *method);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_SplineMethod)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SplineMethod )( 
            IGcadSpline * This,
            /* [in] */ GcSplineMethodType method);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_Degree2)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Degree2 )( 
            IGcadSpline * This,
            /* [in] */ long Degree);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_Degree2)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Degree2 )( 
            IGcadSpline * This,
            /* [retval][out] */ long *Degree);
        
        DECLSPEC_XFGVIRT(IGcadSpline, put_Closed2)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Closed2 )( 
            IGcadSpline * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadSpline, get_Closed2)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Closed2 )( 
            IGcadSpline * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        END_INTERFACE
    } IGcadSplineVtbl;

    interface IGcadSpline
    {
        CONST_VTBL struct IGcadSplineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSpline_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSpline_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSpline_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSpline_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSpline_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSpline_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSpline_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSpline_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadSpline_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSpline_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadSpline_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadSpline_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadSpline_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadSpline_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadSpline_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadSpline_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadSpline_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadSpline_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadSpline_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadSpline_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadSpline_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadSpline_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadSpline_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSpline_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadSpline_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSpline_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadSpline_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSpline_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadSpline_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadSpline_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadSpline_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadSpline_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadSpline_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadSpline_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadSpline_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadSpline_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadSpline_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadSpline_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadSpline_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadSpline_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadSpline_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadSpline_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadSpline_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadSpline_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadSpline_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSpline_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadSpline_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSpline_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadSpline_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadSpline_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadSpline_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadSpline_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadSpline_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadSpline_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadSpline_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadSpline_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadSpline_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadSpline_get_NumberOfControlPoints(This,numCtrlPoints)	\
    ( (This)->lpVtbl -> get_NumberOfControlPoints(This,numCtrlPoints) ) 

#define IGcadSpline_get_ControlPoints(This,controlPoint)	\
    ( (This)->lpVtbl -> get_ControlPoints(This,controlPoint) ) 

#define IGcadSpline_put_ControlPoints(This,controlPoint)	\
    ( (This)->lpVtbl -> put_ControlPoints(This,controlPoint) ) 

#define IGcadSpline_get_NumberOfFitPoints(This,numFitPoints)	\
    ( (This)->lpVtbl -> get_NumberOfFitPoints(This,numFitPoints) ) 

#define IGcadSpline_get_FitPoints(This,fitPoint)	\
    ( (This)->lpVtbl -> get_FitPoints(This,fitPoint) ) 

#define IGcadSpline_put_FitPoints(This,fitPoint)	\
    ( (This)->lpVtbl -> put_FitPoints(This,fitPoint) ) 

#define IGcadSpline_get_Degree(This,Degree)	\
    ( (This)->lpVtbl -> get_Degree(This,Degree) ) 

#define IGcadSpline_get_Closed(This,fClose)	\
    ( (This)->lpVtbl -> get_Closed(This,fClose) ) 

#define IGcadSpline_get_IsPlanar(This,fPlanar)	\
    ( (This)->lpVtbl -> get_IsPlanar(This,fPlanar) ) 

#define IGcadSpline_get_IsRational(This,fRational)	\
    ( (This)->lpVtbl -> get_IsRational(This,fRational) ) 

#define IGcadSpline_get_IsPeriodic(This,fPeriodic)	\
    ( (This)->lpVtbl -> get_IsPeriodic(This,fPeriodic) ) 

#define IGcadSpline_get_StartTangent(This,StartTangent)	\
    ( (This)->lpVtbl -> get_StartTangent(This,StartTangent) ) 

#define IGcadSpline_put_StartTangent(This,StartTangent)	\
    ( (This)->lpVtbl -> put_StartTangent(This,StartTangent) ) 

#define IGcadSpline_get_EndTangent(This,EndTangent)	\
    ( (This)->lpVtbl -> get_EndTangent(This,EndTangent) ) 

#define IGcadSpline_put_EndTangent(This,EndTangent)	\
    ( (This)->lpVtbl -> put_EndTangent(This,EndTangent) ) 

#define IGcadSpline_get_FitTolerance(This,fitTol)	\
    ( (This)->lpVtbl -> get_FitTolerance(This,fitTol) ) 

#define IGcadSpline_put_FitTolerance(This,fitTol)	\
    ( (This)->lpVtbl -> put_FitTolerance(This,fitTol) ) 

#define IGcadSpline_get_Area(This,Area)	\
    ( (This)->lpVtbl -> get_Area(This,Area) ) 

#define IGcadSpline_SetControlPoint(This,Index,controlPoint)	\
    ( (This)->lpVtbl -> SetControlPoint(This,Index,controlPoint) ) 

#define IGcadSpline_GetControlPoint(This,Index,controlPoint)	\
    ( (This)->lpVtbl -> GetControlPoint(This,Index,controlPoint) ) 

#define IGcadSpline_SetFitPoint(This,Index,fitPoint)	\
    ( (This)->lpVtbl -> SetFitPoint(This,Index,fitPoint) ) 

#define IGcadSpline_GetFitPoint(This,Index,fitPoint)	\
    ( (This)->lpVtbl -> GetFitPoint(This,Index,fitPoint) ) 

#define IGcadSpline_SetWeight(This,Index,weight)	\
    ( (This)->lpVtbl -> SetWeight(This,Index,weight) ) 

#define IGcadSpline_GetWeight(This,Index,weight)	\
    ( (This)->lpVtbl -> GetWeight(This,Index,weight) ) 

#define IGcadSpline_AddFitPoint(This,Index,fitPoint)	\
    ( (This)->lpVtbl -> AddFitPoint(This,Index,fitPoint) ) 

#define IGcadSpline_DeleteFitPoint(This,Index)	\
    ( (This)->lpVtbl -> DeleteFitPoint(This,Index) ) 

#define IGcadSpline_ElevateOrder(This,Order)	\
    ( (This)->lpVtbl -> ElevateOrder(This,Order) ) 

#define IGcadSpline_Offset(This,Distance,pOffsetCurves)	\
    ( (This)->lpVtbl -> Offset(This,Distance,pOffsetCurves) ) 

#define IGcadSpline_PurgeFitData(This)	\
    ( (This)->lpVtbl -> PurgeFitData(This) ) 

#define IGcadSpline_Reverse(This)	\
    ( (This)->lpVtbl -> Reverse(This) ) 

#define IGcadSpline_get_Knots(This,KnotValues)	\
    ( (This)->lpVtbl -> get_Knots(This,KnotValues) ) 

#define IGcadSpline_put_Knots(This,KnotValues)	\
    ( (This)->lpVtbl -> put_Knots(This,KnotValues) ) 

#define IGcadSpline_get_Weights(This,WeightValues)	\
    ( (This)->lpVtbl -> get_Weights(This,WeightValues) ) 

#define IGcadSpline_put_Weights(This,WeightValues)	\
    ( (This)->lpVtbl -> put_Weights(This,WeightValues) ) 

#define IGcadSpline_get_KnotParameterization(This,knotParamVal)	\
    ( (This)->lpVtbl -> get_KnotParameterization(This,knotParamVal) ) 

#define IGcadSpline_put_KnotParameterization(This,knotParamVal)	\
    ( (This)->lpVtbl -> put_KnotParameterization(This,knotParamVal) ) 

#define IGcadSpline_get_SplineFrame(This,show)	\
    ( (This)->lpVtbl -> get_SplineFrame(This,show) ) 

#define IGcadSpline_put_SplineFrame(This,show)	\
    ( (This)->lpVtbl -> put_SplineFrame(This,show) ) 

#define IGcadSpline_get_SplineMethod(This,method)	\
    ( (This)->lpVtbl -> get_SplineMethod(This,method) ) 

#define IGcadSpline_put_SplineMethod(This,method)	\
    ( (This)->lpVtbl -> put_SplineMethod(This,method) ) 

#define IGcadSpline_put_Degree2(This,Degree)	\
    ( (This)->lpVtbl -> put_Degree2(This,Degree) ) 

#define IGcadSpline_get_Degree2(This,Degree)	\
    ( (This)->lpVtbl -> get_Degree2(This,Degree) ) 

#define IGcadSpline_put_Closed2(This,bVal)	\
    ( (This)->lpVtbl -> put_Closed2(This,bVal) ) 

#define IGcadSpline_get_Closed2(This,bVal)	\
    ( (This)->lpVtbl -> get_Closed2(This,bVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSpline_INTERFACE_DEFINED__ */


#ifndef __IGcadText_INTERFACE_DEFINED__
#define __IGcadText_INTERFACE_DEFINED__

/* interface IGcadText */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadText;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("910CD144-7EC6-4BA5-9B63-AA6D8AEA3A6B")
    IGcadText : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextString( 
            /* [retval][out] */ BSTR *bstrText) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextString( 
            /* [in] */ BSTR bstrText) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StyleName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Alignment( 
            /* [retval][out] */ GcAlignment *align) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Alignment( 
            /* [in] */ GcAlignment align) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalAlignment( 
            /* [retval][out] */ GcHorizontalAlignment *horizAlign) = 0;
        
        virtual /* [helpstring][hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_HorizontalAlignment( 
            /* [in] */ GcHorizontalAlignment horizAlign) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_VerticalAlignment( 
            /* [retval][out] */ GcVerticalAlignment *vertiAlign) = 0;
        
        virtual /* [helpstring][hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_VerticalAlignment( 
            /* [in] */ GcVerticalAlignment vertiAlign) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *scalFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor( 
            /* [in] */ GCAD_NOUNITS scalFactor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObliqueAngle( 
            /* [retval][out] */ GCAD_ANGLE *obliAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ObliqueAngle( 
            /* [in] */ GCAD_ANGLE obliAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextAlignmentPoint( 
            /* [retval][out] */ VARIANT *alignPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextAlignmentPoint( 
            /* [in] */ VARIANT alignPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsertionPoint( 
            /* [retval][out] */ VARIANT *insPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_InsertionPoint( 
            /* [in] */ VARIANT insPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextGenerationFlag( 
            /* [retval][out] */ long *textGenFlag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextGenerationFlag( 
            /* [in] */ long textGenFlag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UpsideDown( 
            /* [retval][out] */ VARIANT_BOOL *UpsideDown) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UpsideDown( 
            /* [in] */ VARIANT_BOOL UpsideDown) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Backward( 
            /* [retval][out] */ VARIANT_BOOL *Backward) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Backward( 
            /* [in] */ VARIANT_BOOL Backward) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FieldCode( 
            /* [retval][out] */ BSTR *bstrText) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadTextVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadText * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadText * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadText * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadText * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadText * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadText * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadText * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadText * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadText * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadText * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadText * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadText * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadText * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadText * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadText * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadText * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadText * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadText * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadText * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadText * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadText * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadText * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadText * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadText * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadText * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadText * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadText * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadText * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadText * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadText * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadText * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadText * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadText * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadText * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadText * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadText * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadText * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadText * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadText * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadText * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadText * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadText * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadText * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadText * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadText * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadText * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadText * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadText * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadText * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadText * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadText * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadText * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadText * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadText * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadText * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadText * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadText * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadText, get_TextString)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextString )( 
            IGcadText * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadText, put_TextString)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextString )( 
            IGcadText * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadText, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadText * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadText, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadText * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadText, get_Alignment)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Alignment )( 
            IGcadText * This,
            /* [retval][out] */ GcAlignment *align);
        
        DECLSPEC_XFGVIRT(IGcadText, put_Alignment)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Alignment )( 
            IGcadText * This,
            /* [in] */ GcAlignment align);
        
        DECLSPEC_XFGVIRT(IGcadText, get_HorizontalAlignment)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalAlignment )( 
            IGcadText * This,
            /* [retval][out] */ GcHorizontalAlignment *horizAlign);
        
        DECLSPEC_XFGVIRT(IGcadText, put_HorizontalAlignment)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HorizontalAlignment )( 
            IGcadText * This,
            /* [in] */ GcHorizontalAlignment horizAlign);
        
        DECLSPEC_XFGVIRT(IGcadText, get_VerticalAlignment)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalAlignment )( 
            IGcadText * This,
            /* [retval][out] */ GcVerticalAlignment *vertiAlign);
        
        DECLSPEC_XFGVIRT(IGcadText, put_VerticalAlignment)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalAlignment )( 
            IGcadText * This,
            /* [in] */ GcVerticalAlignment vertiAlign);
        
        DECLSPEC_XFGVIRT(IGcadText, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadText * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadText, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadText * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadText, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadText * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadText, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadText * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadText, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadText * This,
            /* [retval][out] */ GCAD_NOUNITS *scalFactor);
        
        DECLSPEC_XFGVIRT(IGcadText, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadText * This,
            /* [in] */ GCAD_NOUNITS scalFactor);
        
        DECLSPEC_XFGVIRT(IGcadText, get_ObliqueAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObliqueAngle )( 
            IGcadText * This,
            /* [retval][out] */ GCAD_ANGLE *obliAngle);
        
        DECLSPEC_XFGVIRT(IGcadText, put_ObliqueAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ObliqueAngle )( 
            IGcadText * This,
            /* [in] */ GCAD_ANGLE obliAngle);
        
        DECLSPEC_XFGVIRT(IGcadText, get_TextAlignmentPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextAlignmentPoint )( 
            IGcadText * This,
            /* [retval][out] */ VARIANT *alignPoint);
        
        DECLSPEC_XFGVIRT(IGcadText, put_TextAlignmentPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextAlignmentPoint )( 
            IGcadText * This,
            /* [in] */ VARIANT alignPoint);
        
        DECLSPEC_XFGVIRT(IGcadText, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadText * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadText, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadText * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadText, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadText * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadText, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadText * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadText, get_TextGenerationFlag)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGenerationFlag )( 
            IGcadText * This,
            /* [retval][out] */ long *textGenFlag);
        
        DECLSPEC_XFGVIRT(IGcadText, put_TextGenerationFlag)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGenerationFlag )( 
            IGcadText * This,
            /* [in] */ long textGenFlag);
        
        DECLSPEC_XFGVIRT(IGcadText, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadText * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadText, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadText * This,
            /* [in] */ double Thickness);
        
        DECLSPEC_XFGVIRT(IGcadText, get_UpsideDown)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UpsideDown )( 
            IGcadText * This,
            /* [retval][out] */ VARIANT_BOOL *UpsideDown);
        
        DECLSPEC_XFGVIRT(IGcadText, put_UpsideDown)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UpsideDown )( 
            IGcadText * This,
            /* [in] */ VARIANT_BOOL UpsideDown);
        
        DECLSPEC_XFGVIRT(IGcadText, get_Backward)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Backward )( 
            IGcadText * This,
            /* [retval][out] */ VARIANT_BOOL *Backward);
        
        DECLSPEC_XFGVIRT(IGcadText, put_Backward)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Backward )( 
            IGcadText * This,
            /* [in] */ VARIANT_BOOL Backward);
        
        DECLSPEC_XFGVIRT(IGcadText, FieldCode)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FieldCode )( 
            IGcadText * This,
            /* [retval][out] */ BSTR *bstrText);
        
        END_INTERFACE
    } IGcadTextVtbl;

    interface IGcadText
    {
        CONST_VTBL struct IGcadTextVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadText_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadText_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadText_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadText_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadText_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadText_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadText_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadText_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadText_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadText_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadText_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadText_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadText_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadText_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadText_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadText_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadText_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadText_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadText_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadText_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadText_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadText_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadText_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadText_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadText_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadText_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadText_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadText_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadText_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadText_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadText_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadText_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadText_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadText_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadText_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadText_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadText_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadText_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadText_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadText_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadText_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadText_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadText_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadText_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadText_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadText_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadText_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadText_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadText_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadText_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadText_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadText_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadText_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadText_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadText_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadText_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadText_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadText_get_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextString(This,bstrText) ) 

#define IGcadText_put_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextString(This,bstrText) ) 

#define IGcadText_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadText_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadText_get_Alignment(This,align)	\
    ( (This)->lpVtbl -> get_Alignment(This,align) ) 

#define IGcadText_put_Alignment(This,align)	\
    ( (This)->lpVtbl -> put_Alignment(This,align) ) 

#define IGcadText_get_HorizontalAlignment(This,horizAlign)	\
    ( (This)->lpVtbl -> get_HorizontalAlignment(This,horizAlign) ) 

#define IGcadText_put_HorizontalAlignment(This,horizAlign)	\
    ( (This)->lpVtbl -> put_HorizontalAlignment(This,horizAlign) ) 

#define IGcadText_get_VerticalAlignment(This,vertiAlign)	\
    ( (This)->lpVtbl -> get_VerticalAlignment(This,vertiAlign) ) 

#define IGcadText_put_VerticalAlignment(This,vertiAlign)	\
    ( (This)->lpVtbl -> put_VerticalAlignment(This,vertiAlign) ) 

#define IGcadText_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadText_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadText_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadText_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadText_get_ScaleFactor(This,scalFactor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,scalFactor) ) 

#define IGcadText_put_ScaleFactor(This,scalFactor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,scalFactor) ) 

#define IGcadText_get_ObliqueAngle(This,obliAngle)	\
    ( (This)->lpVtbl -> get_ObliqueAngle(This,obliAngle) ) 

#define IGcadText_put_ObliqueAngle(This,obliAngle)	\
    ( (This)->lpVtbl -> put_ObliqueAngle(This,obliAngle) ) 

#define IGcadText_get_TextAlignmentPoint(This,alignPoint)	\
    ( (This)->lpVtbl -> get_TextAlignmentPoint(This,alignPoint) ) 

#define IGcadText_put_TextAlignmentPoint(This,alignPoint)	\
    ( (This)->lpVtbl -> put_TextAlignmentPoint(This,alignPoint) ) 

#define IGcadText_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadText_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadText_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadText_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadText_get_TextGenerationFlag(This,textGenFlag)	\
    ( (This)->lpVtbl -> get_TextGenerationFlag(This,textGenFlag) ) 

#define IGcadText_put_TextGenerationFlag(This,textGenFlag)	\
    ( (This)->lpVtbl -> put_TextGenerationFlag(This,textGenFlag) ) 

#define IGcadText_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadText_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#define IGcadText_get_UpsideDown(This,UpsideDown)	\
    ( (This)->lpVtbl -> get_UpsideDown(This,UpsideDown) ) 

#define IGcadText_put_UpsideDown(This,UpsideDown)	\
    ( (This)->lpVtbl -> put_UpsideDown(This,UpsideDown) ) 

#define IGcadText_get_Backward(This,Backward)	\
    ( (This)->lpVtbl -> get_Backward(This,Backward) ) 

#define IGcadText_put_Backward(This,Backward)	\
    ( (This)->lpVtbl -> put_Backward(This,Backward) ) 

#define IGcadText_FieldCode(This,bstrText)	\
    ( (This)->lpVtbl -> FieldCode(This,bstrText) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadText_INTERFACE_DEFINED__ */


#ifndef __IGcadTolerance_INTERFACE_DEFINED__
#define __IGcadTolerance_INTERFACE_DEFINED__

/* interface IGcadTolerance */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadTolerance;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("98D4741E-D869-4950-8B28-046B6884A084")
    IGcadTolerance : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DirectionVector( 
            /* [retval][out] */ VARIANT *dirVector) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DirectionVector( 
            /* [in] */ VARIANT dirVector) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsertionPoint( 
            /* [retval][out] */ VARIANT *insPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_InsertionPoint( 
            /* [in] */ VARIANT insPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StyleName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextColor( 
            /* [retval][out] */ GCAD_COLOR *color) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextColor( 
            /* [in] */ GCAD_COLOR color) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextString( 
            /* [retval][out] */ BSTR *bstrText) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextString( 
            /* [in] */ BSTR bstrText) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextStyle( 
            /* [retval][out] */ BSTR *style) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextStyle( 
            /* [in] */ BSTR style) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextHeight( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextHeight( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor( 
            /* [in] */ GCAD_NOUNITS factor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadToleranceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadTolerance * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadTolerance * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadTolerance * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadTolerance * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadTolerance * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadTolerance * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadTolerance * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadTolerance * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadTolerance * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadTolerance * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadTolerance * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadTolerance * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadTolerance * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadTolerance * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadTolerance * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadTolerance * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadTolerance * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadTolerance * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadTolerance * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadTolerance * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadTolerance * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadTolerance * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadTolerance * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadTolerance * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadTolerance * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadTolerance * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadTolerance * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadTolerance * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadTolerance * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadTolerance * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadTolerance * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadTolerance * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadTolerance * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadTolerance * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadTolerance * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadTolerance * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadTolerance * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadTolerance * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadTolerance * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadTolerance * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadTolerance * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadTolerance * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadTolerance * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadTolerance * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadTolerance * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadTolerance * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadTolerance * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, get_DirectionVector)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DirectionVector )( 
            IGcadTolerance * This,
            /* [retval][out] */ VARIANT *dirVector);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, put_DirectionVector)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DirectionVector )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT dirVector);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadTolerance * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadTolerance * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadTolerance * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadTolerance * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadTolerance * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadTolerance * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadTolerance * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, get_TextString)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextString )( 
            IGcadTolerance * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, put_TextString)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextString )( 
            IGcadTolerance * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadTolerance * This,
            /* [retval][out] */ BSTR *style);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadTolerance * This,
            /* [in] */ BSTR style);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadTolerance * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadTolerance * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadTolerance * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadTolerance * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, get_DimensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineColor )( 
            IGcadTolerance * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadTolerance, put_DimensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineColor )( 
            IGcadTolerance * This,
            /* [in] */ GCAD_COLOR Type);
        
        END_INTERFACE
    } IGcadToleranceVtbl;

    interface IGcadTolerance
    {
        CONST_VTBL struct IGcadToleranceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadTolerance_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadTolerance_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadTolerance_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadTolerance_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadTolerance_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadTolerance_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadTolerance_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadTolerance_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadTolerance_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadTolerance_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadTolerance_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadTolerance_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadTolerance_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadTolerance_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadTolerance_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadTolerance_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadTolerance_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadTolerance_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadTolerance_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadTolerance_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadTolerance_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadTolerance_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadTolerance_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadTolerance_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadTolerance_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadTolerance_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadTolerance_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadTolerance_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadTolerance_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadTolerance_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadTolerance_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadTolerance_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadTolerance_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadTolerance_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadTolerance_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadTolerance_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadTolerance_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadTolerance_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadTolerance_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadTolerance_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadTolerance_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadTolerance_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadTolerance_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadTolerance_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadTolerance_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadTolerance_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadTolerance_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadTolerance_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadTolerance_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadTolerance_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadTolerance_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadTolerance_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadTolerance_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadTolerance_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadTolerance_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadTolerance_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadTolerance_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadTolerance_get_DirectionVector(This,dirVector)	\
    ( (This)->lpVtbl -> get_DirectionVector(This,dirVector) ) 

#define IGcadTolerance_put_DirectionVector(This,dirVector)	\
    ( (This)->lpVtbl -> put_DirectionVector(This,dirVector) ) 

#define IGcadTolerance_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadTolerance_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadTolerance_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadTolerance_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadTolerance_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadTolerance_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadTolerance_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadTolerance_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadTolerance_get_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextString(This,bstrText) ) 

#define IGcadTolerance_put_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextString(This,bstrText) ) 

#define IGcadTolerance_get_TextStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextStyle(This,style) ) 

#define IGcadTolerance_put_TextStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextStyle(This,style) ) 

#define IGcadTolerance_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadTolerance_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadTolerance_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadTolerance_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadTolerance_get_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_DimensionLineColor(This,Type) ) 

#define IGcadTolerance_put_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_DimensionLineColor(This,Type) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadTolerance_INTERFACE_DEFINED__ */


#ifndef __IGcadTrace_INTERFACE_DEFINED__
#define __IGcadTrace_INTERFACE_DEFINED__

/* interface IGcadTrace */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadTrace;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4253025F-5BC5-4D78-8D65-138D2DBED220")
    IGcadTrace : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *corners) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT corners) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinate( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinate( 
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadTraceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadTrace * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadTrace * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadTrace * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadTrace * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadTrace * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadTrace * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadTrace * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadTrace * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadTrace * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadTrace * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadTrace * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadTrace * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadTrace * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadTrace * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadTrace * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadTrace * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadTrace * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadTrace * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadTrace * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadTrace * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadTrace * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadTrace * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadTrace * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadTrace * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadTrace * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadTrace * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadTrace * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadTrace * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadTrace * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadTrace * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadTrace * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadTrace * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadTrace * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadTrace * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadTrace * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadTrace * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadTrace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadTrace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadTrace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadTrace * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadTrace * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadTrace * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadTrace * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadTrace * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadTrace * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadTrace * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadTrace * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadTrace * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadTrace * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadTrace * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadTrace * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadTrace * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadTrace * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadTrace * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadTrace * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadTrace * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadTrace * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadTrace, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcadTrace * This,
            /* [retval][out] */ VARIANT *corners);
        
        DECLSPEC_XFGVIRT(IGcadTrace, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcadTrace * This,
            /* [in] */ VARIANT corners);
        
        DECLSPEC_XFGVIRT(IGcadTrace, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadTrace * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadTrace, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadTrace * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadTrace, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadTrace * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadTrace, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadTrace * This,
            /* [in] */ double Thickness);
        
        DECLSPEC_XFGVIRT(IGcadTrace, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcadTrace * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadTrace, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcadTrace * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        END_INTERFACE
    } IGcadTraceVtbl;

    interface IGcadTrace
    {
        CONST_VTBL struct IGcadTraceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadTrace_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadTrace_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadTrace_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadTrace_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadTrace_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadTrace_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadTrace_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadTrace_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadTrace_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadTrace_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadTrace_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadTrace_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadTrace_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadTrace_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadTrace_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadTrace_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadTrace_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadTrace_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadTrace_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadTrace_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadTrace_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadTrace_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadTrace_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadTrace_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadTrace_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadTrace_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadTrace_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadTrace_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadTrace_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadTrace_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadTrace_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadTrace_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadTrace_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadTrace_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadTrace_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadTrace_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadTrace_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadTrace_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadTrace_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadTrace_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadTrace_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadTrace_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadTrace_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadTrace_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadTrace_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadTrace_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadTrace_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadTrace_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadTrace_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadTrace_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadTrace_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadTrace_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadTrace_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadTrace_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadTrace_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadTrace_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadTrace_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadTrace_get_Coordinates(This,corners)	\
    ( (This)->lpVtbl -> get_Coordinates(This,corners) ) 

#define IGcadTrace_put_Coordinates(This,corners)	\
    ( (This)->lpVtbl -> put_Coordinates(This,corners) ) 

#define IGcadTrace_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadTrace_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadTrace_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadTrace_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#define IGcadTrace_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcadTrace_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadTrace_INTERFACE_DEFINED__ */


#ifndef __IGcadXline_INTERFACE_DEFINED__
#define __IGcadXline_INTERFACE_DEFINED__

/* interface IGcadXline */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadXline;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("36494A5A-AADE-46F4-B87C-B213A2AF0083")
    IGcadXline : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BasePoint( 
            /* [retval][out] */ VARIANT *BasePoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BasePoint( 
            /* [in] */ VARIANT BasePoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SecondPoint( 
            /* [retval][out] */ VARIANT *SecondPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SecondPoint( 
            /* [in] */ VARIANT SecondPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DirectionVector( 
            /* [retval][out] */ VARIANT *dirVector) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DirectionVector( 
            /* [in] */ VARIANT dirVector) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Offset( 
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadXlineVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadXline * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadXline * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadXline * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadXline * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadXline * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadXline * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadXline * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadXline * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadXline * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadXline * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadXline * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadXline * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadXline * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadXline * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadXline * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadXline * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadXline * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadXline * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadXline * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadXline * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadXline * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadXline * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadXline * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadXline * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadXline * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadXline * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadXline * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadXline * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadXline * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadXline * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadXline * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadXline * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadXline * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadXline * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadXline * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadXline * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadXline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadXline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadXline * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadXline * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadXline * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadXline * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadXline * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadXline * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadXline * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadXline * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadXline * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadXline * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadXline * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadXline * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadXline * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadXline * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadXline * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadXline * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadXline * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadXline * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadXline * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadXline, get_BasePoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BasePoint )( 
            IGcadXline * This,
            /* [retval][out] */ VARIANT *BasePoint);
        
        DECLSPEC_XFGVIRT(IGcadXline, put_BasePoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BasePoint )( 
            IGcadXline * This,
            /* [in] */ VARIANT BasePoint);
        
        DECLSPEC_XFGVIRT(IGcadXline, get_SecondPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecondPoint )( 
            IGcadXline * This,
            /* [retval][out] */ VARIANT *SecondPoint);
        
        DECLSPEC_XFGVIRT(IGcadXline, put_SecondPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SecondPoint )( 
            IGcadXline * This,
            /* [in] */ VARIANT SecondPoint);
        
        DECLSPEC_XFGVIRT(IGcadXline, get_DirectionVector)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DirectionVector )( 
            IGcadXline * This,
            /* [retval][out] */ VARIANT *dirVector);
        
        DECLSPEC_XFGVIRT(IGcadXline, put_DirectionVector)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DirectionVector )( 
            IGcadXline * This,
            /* [in] */ VARIANT dirVector);
        
        DECLSPEC_XFGVIRT(IGcadXline, Offset)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Offset )( 
            IGcadXline * This,
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves);
        
        END_INTERFACE
    } IGcadXlineVtbl;

    interface IGcadXline
    {
        CONST_VTBL struct IGcadXlineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadXline_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadXline_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadXline_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadXline_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadXline_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadXline_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadXline_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadXline_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadXline_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadXline_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadXline_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadXline_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadXline_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadXline_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadXline_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadXline_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadXline_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadXline_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadXline_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadXline_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadXline_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadXline_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadXline_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadXline_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadXline_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadXline_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadXline_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadXline_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadXline_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadXline_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadXline_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadXline_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadXline_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadXline_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadXline_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadXline_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadXline_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadXline_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadXline_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadXline_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadXline_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadXline_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadXline_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadXline_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadXline_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadXline_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadXline_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadXline_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadXline_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadXline_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadXline_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadXline_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadXline_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadXline_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadXline_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadXline_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadXline_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadXline_get_BasePoint(This,BasePoint)	\
    ( (This)->lpVtbl -> get_BasePoint(This,BasePoint) ) 

#define IGcadXline_put_BasePoint(This,BasePoint)	\
    ( (This)->lpVtbl -> put_BasePoint(This,BasePoint) ) 

#define IGcadXline_get_SecondPoint(This,SecondPoint)	\
    ( (This)->lpVtbl -> get_SecondPoint(This,SecondPoint) ) 

#define IGcadXline_put_SecondPoint(This,SecondPoint)	\
    ( (This)->lpVtbl -> put_SecondPoint(This,SecondPoint) ) 

#define IGcadXline_get_DirectionVector(This,dirVector)	\
    ( (This)->lpVtbl -> get_DirectionVector(This,dirVector) ) 

#define IGcadXline_put_DirectionVector(This,dirVector)	\
    ( (This)->lpVtbl -> put_DirectionVector(This,dirVector) ) 

#define IGcadXline_Offset(This,Distance,pOffsetCurves)	\
    ( (This)->lpVtbl -> Offset(This,Distance,pOffsetCurves) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadXline_INTERFACE_DEFINED__ */


#ifndef __IGcadBlockReference_INTERFACE_DEFINED__
#define __IGcadBlockReference_INTERFACE_DEFINED__

/* interface IGcadBlockReference */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadBlockReference;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0E143589-AFCC-44FC-8000-4C8D44F80ED6")
    IGcadBlockReference : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsertionPoint( 
            /* [retval][out] */ VARIANT *insPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_InsertionPoint( 
            /* [in] */ VARIANT insPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_XScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_XScaleFactor( 
            /* [in] */ GCAD_NOUNITS ScaleFactor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_YScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_YScaleFactor( 
            /* [in] */ GCAD_NOUNITS ScaleFactor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ZScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ZScaleFactor( 
            /* [in] */ GCAD_NOUNITS ScaleFactor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Explode( 
            /* [retval][out] */ VARIANT *pArrayObjs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAttributes( 
            /* [retval][out] */ VARIANT *pAttrObjs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetConstantAttributes( 
            /* [retval][out] */ VARIANT *pAttrObjs) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HasAttributes( 
            /* [retval][out] */ VARIANT_BOOL *bHas) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EffectiveName( 
            /* [retval][out] */ BSTR *EffectiveName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IsDynamicBlock( 
            /* [retval][out] */ VARIANT_BOOL *pDynamicBlock) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDynamicBlockProperties( 
            /* [retval][out] */ VARIANT *dynamicPropertyArray) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ResetBlock( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConvertToAnonymousBlock( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConvertToStaticBlock( 
            /* [in] */ BSTR newBlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_XEffectiveScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_XEffectiveScaleFactor( 
            /* [in] */ GCAD_NOUNITS ScaleFactor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_YEffectiveScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_YEffectiveScaleFactor( 
            /* [in] */ GCAD_NOUNITS ScaleFactor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ZEffectiveScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ZEffectiveScaleFactor( 
            /* [in] */ GCAD_NOUNITS ScaleFactor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsUnits( 
            /* [retval][out] */ BSTR *Units) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsUnitsFactor( 
            /* [retval][out] */ double *factor) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadBlockReferenceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadBlockReference * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadBlockReference * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadBlockReference * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadBlockReference * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadBlockReference * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadBlockReference * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadBlockReference * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadBlockReference * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadBlockReference * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadBlockReference * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadBlockReference * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadBlockReference * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadBlockReference * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadBlockReference * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadBlockReference * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadBlockReference * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadBlockReference * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadBlockReference * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadBlockReference * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadBlockReference * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadBlockReference * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadBlockReference * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadBlockReference * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadBlockReference * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadBlockReference * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadBlockReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadBlockReference * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadBlockReference * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadBlockReference * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadBlockReference * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadBlockReference * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadBlockReference * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadBlockReference * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadBlockReference * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadBlockReference * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadBlockReference * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadBlockReference * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadBlockReference * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadBlockReference * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadBlockReference * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadBlockReference * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadBlockReference * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadBlockReference * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadBlockReference * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadBlockReference * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadBlockReference * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadBlockReference * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadBlockReference * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadBlockReference * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadBlockReference * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadBlockReference * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadBlockReference * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadBlockReference * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadBlockReference * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_XScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XScaleFactor )( 
            IGcadBlockReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_XScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XScaleFactor )( 
            IGcadBlockReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_YScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_YScaleFactor )( 
            IGcadBlockReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_YScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_YScaleFactor )( 
            IGcadBlockReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_ZScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ZScaleFactor )( 
            IGcadBlockReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_ZScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ZScaleFactor )( 
            IGcadBlockReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, Explode)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Explode )( 
            IGcadBlockReference * This,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetAttributes)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAttributes )( 
            IGcadBlockReference * This,
            /* [retval][out] */ VARIANT *pAttrObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetConstantAttributes)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConstantAttributes )( 
            IGcadBlockReference * This,
            /* [retval][out] */ VARIANT *pAttrObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_HasAttributes)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasAttributes )( 
            IGcadBlockReference * This,
            /* [retval][out] */ VARIANT_BOOL *bHas);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_EffectiveName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EffectiveName )( 
            IGcadBlockReference * This,
            /* [retval][out] */ BSTR *EffectiveName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_IsDynamicBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsDynamicBlock )( 
            IGcadBlockReference * This,
            /* [retval][out] */ VARIANT_BOOL *pDynamicBlock);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetDynamicBlockProperties)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDynamicBlockProperties )( 
            IGcadBlockReference * This,
            /* [retval][out] */ VARIANT *dynamicPropertyArray);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ResetBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ResetBlock )( 
            IGcadBlockReference * This);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ConvertToAnonymousBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConvertToAnonymousBlock )( 
            IGcadBlockReference * This);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ConvertToStaticBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConvertToStaticBlock )( 
            IGcadBlockReference * This,
            /* [in] */ BSTR newBlockName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_XEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XEffectiveScaleFactor )( 
            IGcadBlockReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_XEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XEffectiveScaleFactor )( 
            IGcadBlockReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_YEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_YEffectiveScaleFactor )( 
            IGcadBlockReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_YEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_YEffectiveScaleFactor )( 
            IGcadBlockReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_ZEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ZEffectiveScaleFactor )( 
            IGcadBlockReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_ZEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ZEffectiveScaleFactor )( 
            IGcadBlockReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsUnits )( 
            IGcadBlockReference * This,
            /* [retval][out] */ BSTR *Units);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsUnitsFactor )( 
            IGcadBlockReference * This,
            /* [retval][out] */ double *factor);
        
        END_INTERFACE
    } IGcadBlockReferenceVtbl;

    interface IGcadBlockReference
    {
        CONST_VTBL struct IGcadBlockReferenceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadBlockReference_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadBlockReference_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadBlockReference_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadBlockReference_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadBlockReference_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadBlockReference_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadBlockReference_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadBlockReference_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadBlockReference_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadBlockReference_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadBlockReference_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadBlockReference_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadBlockReference_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadBlockReference_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadBlockReference_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadBlockReference_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadBlockReference_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadBlockReference_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadBlockReference_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadBlockReference_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadBlockReference_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadBlockReference_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadBlockReference_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadBlockReference_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadBlockReference_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadBlockReference_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadBlockReference_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadBlockReference_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadBlockReference_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadBlockReference_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadBlockReference_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadBlockReference_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadBlockReference_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadBlockReference_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadBlockReference_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadBlockReference_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadBlockReference_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadBlockReference_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadBlockReference_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadBlockReference_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadBlockReference_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadBlockReference_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadBlockReference_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadBlockReference_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadBlockReference_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadBlockReference_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadBlockReference_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadBlockReference_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadBlockReference_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadBlockReference_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadBlockReference_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadBlockReference_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadBlockReference_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadBlockReference_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadBlockReference_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadBlockReference_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadBlockReference_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadBlockReference_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadBlockReference_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadBlockReference_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadBlockReference_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadBlockReference_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadBlockReference_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadBlockReference_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadBlockReference_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadBlockReference_get_XScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_XScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_put_XScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_XScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_get_YScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_YScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_put_YScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_YScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_get_ZScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ZScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_put_ZScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ZScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_Explode(This,pArrayObjs)	\
    ( (This)->lpVtbl -> Explode(This,pArrayObjs) ) 

#define IGcadBlockReference_GetAttributes(This,pAttrObjs)	\
    ( (This)->lpVtbl -> GetAttributes(This,pAttrObjs) ) 

#define IGcadBlockReference_GetConstantAttributes(This,pAttrObjs)	\
    ( (This)->lpVtbl -> GetConstantAttributes(This,pAttrObjs) ) 

#define IGcadBlockReference_get_HasAttributes(This,bHas)	\
    ( (This)->lpVtbl -> get_HasAttributes(This,bHas) ) 

#define IGcadBlockReference_get_EffectiveName(This,EffectiveName)	\
    ( (This)->lpVtbl -> get_EffectiveName(This,EffectiveName) ) 

#define IGcadBlockReference_get_IsDynamicBlock(This,pDynamicBlock)	\
    ( (This)->lpVtbl -> get_IsDynamicBlock(This,pDynamicBlock) ) 

#define IGcadBlockReference_GetDynamicBlockProperties(This,dynamicPropertyArray)	\
    ( (This)->lpVtbl -> GetDynamicBlockProperties(This,dynamicPropertyArray) ) 

#define IGcadBlockReference_ResetBlock(This)	\
    ( (This)->lpVtbl -> ResetBlock(This) ) 

#define IGcadBlockReference_ConvertToAnonymousBlock(This)	\
    ( (This)->lpVtbl -> ConvertToAnonymousBlock(This) ) 

#define IGcadBlockReference_ConvertToStaticBlock(This,newBlockName)	\
    ( (This)->lpVtbl -> ConvertToStaticBlock(This,newBlockName) ) 

#define IGcadBlockReference_get_XEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_XEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_put_XEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_XEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_get_YEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_YEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_put_YEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_YEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_get_ZEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ZEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_put_ZEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ZEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadBlockReference_get_InsUnits(This,Units)	\
    ( (This)->lpVtbl -> get_InsUnits(This,Units) ) 

#define IGcadBlockReference_get_InsUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_InsUnitsFactor(This,factor) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadBlockReference_INTERFACE_DEFINED__ */


#ifndef __IGcadHatch_INTERFACE_DEFINED__
#define __IGcadHatch_INTERFACE_DEFINED__

/* interface IGcadHatch */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadHatch;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("78EEB562-92AD-4C9E-AE4B-BE3E73AEFE32")
    IGcadHatch : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NumberOfLoops( 
            /* [retval][out] */ long *numLoops) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PatternType( 
            /* [retval][out] */ GcPatternType *PatternType) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PatternName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PatternAngle( 
            /* [retval][out] */ GCAD_ANGLE *PatternAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PatternAngle( 
            /* [in] */ GCAD_ANGLE PatternAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PatternScale( 
            /* [retval][out] */ GCAD_NOUNITS *PatternScale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PatternScale( 
            /* [in] */ GCAD_NOUNITS PatternScale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PatternSpace( 
            /* [retval][out] */ double *PatternSpace) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PatternSpace( 
            /* [in] */ double PatternSpace) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ISOPenWidth( 
            /* [retval][out] */ GcISOPenWidth *penWidth) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ISOPenWidth( 
            /* [in] */ GcISOPenWidth penWidth) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PatternDouble( 
            /* [retval][out] */ VARIANT_BOOL *bDouble) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PatternDouble( 
            /* [in] */ VARIANT_BOOL bDouble) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Elevation( 
            /* [retval][out] */ double *Elevation) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Elevation( 
            /* [in] */ double Elevation) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AssociativeHatch( 
            /* [retval][out] */ VARIANT_BOOL *fAssoc) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AssociativeHatch( 
            /* [in] */ VARIANT_BOOL fAssoc) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchStyle( 
            /* [retval][out] */ GcHatchStyle *HatchStyle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchStyle( 
            /* [in] */ GcHatchStyle HatchStyle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPattern( 
            /* [in] */ int PatternType,
            /* [in] */ BSTR PatternName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AppendOuterLoop( 
            /* [in] */ VARIANT ObjectArray) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AppendInnerLoop( 
            /* [in] */ VARIANT ObjectArray) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InsertLoopAt( 
            /* [in] */ int Index,
            /* [in] */ GcLoopType LoopType,
            /* [in] */ VARIANT ObjectArray) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLoopAt( 
            /* [in] */ int Index,
            /* [out] */ VARIANT *ObjectArray) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Evaluate( void) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GradientColor1( 
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_GradientColor1( 
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GradientColor2( 
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_GradientColor2( 
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GradientAngle( 
            /* [retval][out] */ GCAD_ANGLE *GradientAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_GradientAngle( 
            /* [in] */ GCAD_ANGLE GradientAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GradientCentered( 
            /* [retval][out] */ VARIANT_BOOL *fCentered) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_GradientCentered( 
            /* [in] */ VARIANT_BOOL fCentered) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GradientName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_GradientName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchObjectType( 
            /* [retval][out] */ GcHatchObjectType *hatchType) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchObjectType( 
            /* [in] */ GcHatchObjectType hatchType) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Area( 
            /* [retval][out] */ double *Area) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Origin( 
            /* [retval][out] */ VARIANT *Origin) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Origin( 
            /* [in] */ VARIANT Origin) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackgroundColor( 
            /* [retval][out] */ IGcadGcCmColor **BackgroundColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackgroundColor( 
            /* [in] */ IGcadGcCmColor *BackgroundColor) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadHatchVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadHatch * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadHatch * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadHatch * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadHatch * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadHatch * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadHatch * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadHatch * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadHatch * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadHatch * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadHatch * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadHatch * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadHatch * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadHatch * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadHatch * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadHatch * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadHatch * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadHatch * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadHatch * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadHatch * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadHatch * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadHatch * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadHatch * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadHatch * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadHatch * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadHatch * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadHatch * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadHatch * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadHatch * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadHatch * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadHatch * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadHatch * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadHatch * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadHatch * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadHatch * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadHatch * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadHatch * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadHatch * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadHatch * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadHatch * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadHatch * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadHatch * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadHatch * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadHatch * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadHatch * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadHatch * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadHatch * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadHatch * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadHatch * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadHatch * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadHatch * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadHatch * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadHatch * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadHatch * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadHatch * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadHatch * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadHatch * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadHatch * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadHatch * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadHatch * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_NumberOfLoops)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfLoops )( 
            IGcadHatch * This,
            /* [retval][out] */ long *numLoops);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_PatternType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PatternType )( 
            IGcadHatch * This,
            /* [retval][out] */ GcPatternType *PatternType);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_PatternName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PatternName )( 
            IGcadHatch * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_PatternAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PatternAngle )( 
            IGcadHatch * This,
            /* [retval][out] */ GCAD_ANGLE *PatternAngle);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_PatternAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PatternAngle )( 
            IGcadHatch * This,
            /* [in] */ GCAD_ANGLE PatternAngle);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_PatternScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PatternScale )( 
            IGcadHatch * This,
            /* [retval][out] */ GCAD_NOUNITS *PatternScale);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_PatternScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PatternScale )( 
            IGcadHatch * This,
            /* [in] */ GCAD_NOUNITS PatternScale);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_PatternSpace)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PatternSpace )( 
            IGcadHatch * This,
            /* [retval][out] */ double *PatternSpace);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_PatternSpace)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PatternSpace )( 
            IGcadHatch * This,
            /* [in] */ double PatternSpace);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_ISOPenWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ISOPenWidth )( 
            IGcadHatch * This,
            /* [retval][out] */ GcISOPenWidth *penWidth);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_ISOPenWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ISOPenWidth )( 
            IGcadHatch * This,
            /* [in] */ GcISOPenWidth penWidth);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_PatternDouble)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PatternDouble )( 
            IGcadHatch * This,
            /* [retval][out] */ VARIANT_BOOL *bDouble);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_PatternDouble)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PatternDouble )( 
            IGcadHatch * This,
            /* [in] */ VARIANT_BOOL bDouble);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_Elevation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Elevation )( 
            IGcadHatch * This,
            /* [retval][out] */ double *Elevation);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_Elevation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Elevation )( 
            IGcadHatch * This,
            /* [in] */ double Elevation);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_AssociativeHatch)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AssociativeHatch )( 
            IGcadHatch * This,
            /* [retval][out] */ VARIANT_BOOL *fAssoc);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_AssociativeHatch)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AssociativeHatch )( 
            IGcadHatch * This,
            /* [in] */ VARIANT_BOOL fAssoc);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_HatchStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchStyle )( 
            IGcadHatch * This,
            /* [retval][out] */ GcHatchStyle *HatchStyle);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_HatchStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchStyle )( 
            IGcadHatch * This,
            /* [in] */ GcHatchStyle HatchStyle);
        
        DECLSPEC_XFGVIRT(IGcadHatch, SetPattern)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPattern )( 
            IGcadHatch * This,
            /* [in] */ int PatternType,
            /* [in] */ BSTR PatternName);
        
        DECLSPEC_XFGVIRT(IGcadHatch, AppendOuterLoop)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AppendOuterLoop )( 
            IGcadHatch * This,
            /* [in] */ VARIANT ObjectArray);
        
        DECLSPEC_XFGVIRT(IGcadHatch, AppendInnerLoop)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AppendInnerLoop )( 
            IGcadHatch * This,
            /* [in] */ VARIANT ObjectArray);
        
        DECLSPEC_XFGVIRT(IGcadHatch, InsertLoopAt)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertLoopAt )( 
            IGcadHatch * This,
            /* [in] */ int Index,
            /* [in] */ GcLoopType LoopType,
            /* [in] */ VARIANT ObjectArray);
        
        DECLSPEC_XFGVIRT(IGcadHatch, GetLoopAt)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLoopAt )( 
            IGcadHatch * This,
            /* [in] */ int Index,
            /* [out] */ VARIANT *ObjectArray);
        
        DECLSPEC_XFGVIRT(IGcadHatch, Evaluate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Evaluate )( 
            IGcadHatch * This);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_GradientColor1)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GradientColor1 )( 
            IGcadHatch * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_GradientColor1)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GradientColor1 )( 
            IGcadHatch * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_GradientColor2)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GradientColor2 )( 
            IGcadHatch * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_GradientColor2)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GradientColor2 )( 
            IGcadHatch * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_GradientAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GradientAngle )( 
            IGcadHatch * This,
            /* [retval][out] */ GCAD_ANGLE *GradientAngle);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_GradientAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GradientAngle )( 
            IGcadHatch * This,
            /* [in] */ GCAD_ANGLE GradientAngle);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_GradientCentered)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GradientCentered )( 
            IGcadHatch * This,
            /* [retval][out] */ VARIANT_BOOL *fCentered);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_GradientCentered)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GradientCentered )( 
            IGcadHatch * This,
            /* [in] */ VARIANT_BOOL fCentered);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_GradientName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GradientName )( 
            IGcadHatch * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_GradientName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GradientName )( 
            IGcadHatch * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_HatchObjectType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchObjectType )( 
            IGcadHatch * This,
            /* [retval][out] */ GcHatchObjectType *hatchType);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_HatchObjectType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchObjectType )( 
            IGcadHatch * This,
            /* [in] */ GcHatchObjectType hatchType);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_Area)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Area )( 
            IGcadHatch * This,
            /* [retval][out] */ double *Area);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_Origin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Origin )( 
            IGcadHatch * This,
            /* [retval][out] */ VARIANT *Origin);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_Origin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Origin )( 
            IGcadHatch * This,
            /* [in] */ VARIANT Origin);
        
        DECLSPEC_XFGVIRT(IGcadHatch, get_BackgroundColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundColor )( 
            IGcadHatch * This,
            /* [retval][out] */ IGcadGcCmColor **BackgroundColor);
        
        DECLSPEC_XFGVIRT(IGcadHatch, put_BackgroundColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundColor )( 
            IGcadHatch * This,
            /* [in] */ IGcadGcCmColor *BackgroundColor);
        
        END_INTERFACE
    } IGcadHatchVtbl;

    interface IGcadHatch
    {
        CONST_VTBL struct IGcadHatchVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadHatch_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadHatch_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadHatch_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadHatch_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadHatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadHatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadHatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadHatch_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadHatch_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadHatch_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadHatch_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadHatch_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadHatch_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadHatch_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadHatch_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadHatch_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadHatch_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadHatch_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadHatch_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadHatch_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadHatch_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadHatch_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadHatch_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadHatch_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadHatch_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadHatch_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadHatch_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadHatch_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadHatch_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadHatch_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadHatch_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadHatch_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadHatch_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadHatch_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadHatch_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadHatch_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadHatch_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadHatch_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadHatch_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadHatch_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadHatch_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadHatch_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadHatch_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadHatch_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadHatch_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadHatch_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadHatch_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadHatch_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadHatch_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadHatch_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadHatch_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadHatch_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadHatch_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadHatch_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadHatch_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadHatch_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadHatch_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadHatch_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadHatch_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadHatch_get_NumberOfLoops(This,numLoops)	\
    ( (This)->lpVtbl -> get_NumberOfLoops(This,numLoops) ) 

#define IGcadHatch_get_PatternType(This,PatternType)	\
    ( (This)->lpVtbl -> get_PatternType(This,PatternType) ) 

#define IGcadHatch_get_PatternName(This,bstrName)	\
    ( (This)->lpVtbl -> get_PatternName(This,bstrName) ) 

#define IGcadHatch_get_PatternAngle(This,PatternAngle)	\
    ( (This)->lpVtbl -> get_PatternAngle(This,PatternAngle) ) 

#define IGcadHatch_put_PatternAngle(This,PatternAngle)	\
    ( (This)->lpVtbl -> put_PatternAngle(This,PatternAngle) ) 

#define IGcadHatch_get_PatternScale(This,PatternScale)	\
    ( (This)->lpVtbl -> get_PatternScale(This,PatternScale) ) 

#define IGcadHatch_put_PatternScale(This,PatternScale)	\
    ( (This)->lpVtbl -> put_PatternScale(This,PatternScale) ) 

#define IGcadHatch_get_PatternSpace(This,PatternSpace)	\
    ( (This)->lpVtbl -> get_PatternSpace(This,PatternSpace) ) 

#define IGcadHatch_put_PatternSpace(This,PatternSpace)	\
    ( (This)->lpVtbl -> put_PatternSpace(This,PatternSpace) ) 

#define IGcadHatch_get_ISOPenWidth(This,penWidth)	\
    ( (This)->lpVtbl -> get_ISOPenWidth(This,penWidth) ) 

#define IGcadHatch_put_ISOPenWidth(This,penWidth)	\
    ( (This)->lpVtbl -> put_ISOPenWidth(This,penWidth) ) 

#define IGcadHatch_get_PatternDouble(This,bDouble)	\
    ( (This)->lpVtbl -> get_PatternDouble(This,bDouble) ) 

#define IGcadHatch_put_PatternDouble(This,bDouble)	\
    ( (This)->lpVtbl -> put_PatternDouble(This,bDouble) ) 

#define IGcadHatch_get_Elevation(This,Elevation)	\
    ( (This)->lpVtbl -> get_Elevation(This,Elevation) ) 

#define IGcadHatch_put_Elevation(This,Elevation)	\
    ( (This)->lpVtbl -> put_Elevation(This,Elevation) ) 

#define IGcadHatch_get_AssociativeHatch(This,fAssoc)	\
    ( (This)->lpVtbl -> get_AssociativeHatch(This,fAssoc) ) 

#define IGcadHatch_put_AssociativeHatch(This,fAssoc)	\
    ( (This)->lpVtbl -> put_AssociativeHatch(This,fAssoc) ) 

#define IGcadHatch_get_HatchStyle(This,HatchStyle)	\
    ( (This)->lpVtbl -> get_HatchStyle(This,HatchStyle) ) 

#define IGcadHatch_put_HatchStyle(This,HatchStyle)	\
    ( (This)->lpVtbl -> put_HatchStyle(This,HatchStyle) ) 

#define IGcadHatch_SetPattern(This,PatternType,PatternName)	\
    ( (This)->lpVtbl -> SetPattern(This,PatternType,PatternName) ) 

#define IGcadHatch_AppendOuterLoop(This,ObjectArray)	\
    ( (This)->lpVtbl -> AppendOuterLoop(This,ObjectArray) ) 

#define IGcadHatch_AppendInnerLoop(This,ObjectArray)	\
    ( (This)->lpVtbl -> AppendInnerLoop(This,ObjectArray) ) 

#define IGcadHatch_InsertLoopAt(This,Index,LoopType,ObjectArray)	\
    ( (This)->lpVtbl -> InsertLoopAt(This,Index,LoopType,ObjectArray) ) 

#define IGcadHatch_GetLoopAt(This,Index,ObjectArray)	\
    ( (This)->lpVtbl -> GetLoopAt(This,Index,ObjectArray) ) 

#define IGcadHatch_Evaluate(This)	\
    ( (This)->lpVtbl -> Evaluate(This) ) 

#define IGcadHatch_get_GradientColor1(This,pColor)	\
    ( (This)->lpVtbl -> get_GradientColor1(This,pColor) ) 

#define IGcadHatch_put_GradientColor1(This,pColor)	\
    ( (This)->lpVtbl -> put_GradientColor1(This,pColor) ) 

#define IGcadHatch_get_GradientColor2(This,pColor)	\
    ( (This)->lpVtbl -> get_GradientColor2(This,pColor) ) 

#define IGcadHatch_put_GradientColor2(This,pColor)	\
    ( (This)->lpVtbl -> put_GradientColor2(This,pColor) ) 

#define IGcadHatch_get_GradientAngle(This,GradientAngle)	\
    ( (This)->lpVtbl -> get_GradientAngle(This,GradientAngle) ) 

#define IGcadHatch_put_GradientAngle(This,GradientAngle)	\
    ( (This)->lpVtbl -> put_GradientAngle(This,GradientAngle) ) 

#define IGcadHatch_get_GradientCentered(This,fCentered)	\
    ( (This)->lpVtbl -> get_GradientCentered(This,fCentered) ) 

#define IGcadHatch_put_GradientCentered(This,fCentered)	\
    ( (This)->lpVtbl -> put_GradientCentered(This,fCentered) ) 

#define IGcadHatch_get_GradientName(This,bstrName)	\
    ( (This)->lpVtbl -> get_GradientName(This,bstrName) ) 

#define IGcadHatch_put_GradientName(This,bstrName)	\
    ( (This)->lpVtbl -> put_GradientName(This,bstrName) ) 

#define IGcadHatch_get_HatchObjectType(This,hatchType)	\
    ( (This)->lpVtbl -> get_HatchObjectType(This,hatchType) ) 

#define IGcadHatch_put_HatchObjectType(This,hatchType)	\
    ( (This)->lpVtbl -> put_HatchObjectType(This,hatchType) ) 

#define IGcadHatch_get_Area(This,Area)	\
    ( (This)->lpVtbl -> get_Area(This,Area) ) 

#define IGcadHatch_get_Origin(This,Origin)	\
    ( (This)->lpVtbl -> get_Origin(This,Origin) ) 

#define IGcadHatch_put_Origin(This,Origin)	\
    ( (This)->lpVtbl -> put_Origin(This,Origin) ) 

#define IGcadHatch_get_BackgroundColor(This,BackgroundColor)	\
    ( (This)->lpVtbl -> get_BackgroundColor(This,BackgroundColor) ) 

#define IGcadHatch_put_BackgroundColor(This,BackgroundColor)	\
    ( (This)->lpVtbl -> put_BackgroundColor(This,BackgroundColor) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadHatch_INTERFACE_DEFINED__ */


#ifndef __IGcadRasterImage_INTERFACE_DEFINED__
#define __IGcadRasterImage_INTERFACE_DEFINED__

/* interface IGcadRasterImage */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadRasterImage;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1A5BD135-D93B-4BFD-8027-E8277D629B46")
    IGcadRasterImage : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Brightness( 
            /* [retval][out] */ long *Brightness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Brightness( 
            /* [in] */ long Brightness) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Contrast( 
            /* [retval][out] */ long *Contrast) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Contrast( 
            /* [in] */ long Contrast) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Fade( 
            /* [retval][out] */ long *Fade) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Fade( 
            /* [in] */ long Fade) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Origin( 
            /* [retval][out] */ VARIANT *Origin) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Origin( 
            /* [in] */ VARIANT Origin) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ImageWidth( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ImageWidth( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ImageHeight( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ImageHeight( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ImageFile( 
            /* [in] */ BSTR imageFileName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ImageFile( 
            /* [retval][out] */ BSTR *imageFileName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ImageVisibility( 
            /* [retval][out] */ VARIANT_BOOL *fVisible) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ImageVisibility( 
            /* [in] */ VARIANT_BOOL fVisible) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ClippingEnabled( 
            /* [retval][out] */ VARIANT_BOOL *kClip) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ClippingEnabled( 
            /* [in] */ VARIANT_BOOL kClip) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_transparency( 
            /* [retval][out] */ VARIANT_BOOL *bTransp) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_transparency( 
            /* [in] */ VARIANT_BOOL bTransp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClipBoundary( 
            /* [in] */ VARIANT boundry) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *pixelHeight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ double *pixelWidth) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ShowRotation( 
            /* [retval][out] */ VARIANT_BOOL *bShow) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ShowRotation( 
            /* [in] */ VARIANT_BOOL bShow) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor( 
            /* [in] */ GCAD_NOUNITS ScaleFactor) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadRasterImageVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadRasterImage * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadRasterImage * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadRasterImage * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadRasterImage * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadRasterImage * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadRasterImage * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadRasterImage * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadRasterImage * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadRasterImage * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadRasterImage * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadRasterImage * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadRasterImage * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadRasterImage * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadRasterImage * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadRasterImage * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadRasterImage * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadRasterImage * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadRasterImage * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadRasterImage * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadRasterImage * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadRasterImage * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadRasterImage * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadRasterImage * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadRasterImage * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadRasterImage * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadRasterImage * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadRasterImage * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadRasterImage * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadRasterImage * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadRasterImage * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadRasterImage * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadRasterImage * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadRasterImage * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadRasterImage * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadRasterImage * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadRasterImage * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadRasterImage * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadRasterImage * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadRasterImage * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadRasterImage * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadRasterImage * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadRasterImage * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadRasterImage * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadRasterImage * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadRasterImage * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadRasterImage * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadRasterImage * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Brightness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Brightness )( 
            IGcadRasterImage * This,
            /* [retval][out] */ long *Brightness);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Brightness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Brightness )( 
            IGcadRasterImage * This,
            /* [in] */ long Brightness);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Contrast)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Contrast )( 
            IGcadRasterImage * This,
            /* [retval][out] */ long *Contrast);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Contrast)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Contrast )( 
            IGcadRasterImage * This,
            /* [in] */ long Contrast);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Fade)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fade )( 
            IGcadRasterImage * This,
            /* [retval][out] */ long *Fade);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Fade)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fade )( 
            IGcadRasterImage * This,
            /* [in] */ long Fade);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Origin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Origin )( 
            IGcadRasterImage * This,
            /* [retval][out] */ VARIANT *Origin);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Origin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Origin )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT Origin);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadRasterImage * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadRasterImage * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageWidth )( 
            IGcadRasterImage * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageWidth )( 
            IGcadRasterImage * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageHeight )( 
            IGcadRasterImage * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageHeight )( 
            IGcadRasterImage * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadRasterImage * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadRasterImage * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageFile)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageFile )( 
            IGcadRasterImage * This,
            /* [in] */ BSTR imageFileName);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageFile)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageFile )( 
            IGcadRasterImage * This,
            /* [retval][out] */ BSTR *imageFileName);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageVisibility)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageVisibility )( 
            IGcadRasterImage * This,
            /* [retval][out] */ VARIANT_BOOL *fVisible);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageVisibility)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageVisibility )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT_BOOL fVisible);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ClippingEnabled)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ClippingEnabled )( 
            IGcadRasterImage * This,
            /* [retval][out] */ VARIANT_BOOL *kClip);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ClippingEnabled)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClippingEnabled )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT_BOOL kClip);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_transparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_transparency )( 
            IGcadRasterImage * This,
            /* [retval][out] */ VARIANT_BOOL *bTransp);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_transparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_transparency )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT_BOOL bTransp);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, ClipBoundary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClipBoundary )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT boundry);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadRasterImage * This,
            /* [retval][out] */ double *pixelHeight);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadRasterImage * This,
            /* [retval][out] */ double *pixelWidth);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ShowRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowRotation )( 
            IGcadRasterImage * This,
            /* [retval][out] */ VARIANT_BOOL *bShow);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ShowRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowRotation )( 
            IGcadRasterImage * This,
            /* [in] */ VARIANT_BOOL bShow);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadRasterImage * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadRasterImage * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        END_INTERFACE
    } IGcadRasterImageVtbl;

    interface IGcadRasterImage
    {
        CONST_VTBL struct IGcadRasterImageVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadRasterImage_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadRasterImage_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadRasterImage_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadRasterImage_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadRasterImage_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadRasterImage_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadRasterImage_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadRasterImage_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadRasterImage_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadRasterImage_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadRasterImage_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadRasterImage_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadRasterImage_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadRasterImage_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadRasterImage_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadRasterImage_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadRasterImage_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadRasterImage_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadRasterImage_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadRasterImage_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadRasterImage_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadRasterImage_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadRasterImage_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadRasterImage_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadRasterImage_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadRasterImage_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadRasterImage_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadRasterImage_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadRasterImage_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadRasterImage_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadRasterImage_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadRasterImage_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadRasterImage_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadRasterImage_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadRasterImage_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadRasterImage_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadRasterImage_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadRasterImage_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadRasterImage_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadRasterImage_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadRasterImage_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadRasterImage_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadRasterImage_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadRasterImage_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadRasterImage_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadRasterImage_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadRasterImage_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadRasterImage_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadRasterImage_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadRasterImage_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadRasterImage_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadRasterImage_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadRasterImage_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadRasterImage_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadRasterImage_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadRasterImage_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadRasterImage_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadRasterImage_get_Brightness(This,Brightness)	\
    ( (This)->lpVtbl -> get_Brightness(This,Brightness) ) 

#define IGcadRasterImage_put_Brightness(This,Brightness)	\
    ( (This)->lpVtbl -> put_Brightness(This,Brightness) ) 

#define IGcadRasterImage_get_Contrast(This,Contrast)	\
    ( (This)->lpVtbl -> get_Contrast(This,Contrast) ) 

#define IGcadRasterImage_put_Contrast(This,Contrast)	\
    ( (This)->lpVtbl -> put_Contrast(This,Contrast) ) 

#define IGcadRasterImage_get_Fade(This,Fade)	\
    ( (This)->lpVtbl -> get_Fade(This,Fade) ) 

#define IGcadRasterImage_put_Fade(This,Fade)	\
    ( (This)->lpVtbl -> put_Fade(This,Fade) ) 

#define IGcadRasterImage_get_Origin(This,Origin)	\
    ( (This)->lpVtbl -> get_Origin(This,Origin) ) 

#define IGcadRasterImage_put_Origin(This,Origin)	\
    ( (This)->lpVtbl -> put_Origin(This,Origin) ) 

#define IGcadRasterImage_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadRasterImage_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadRasterImage_get_ImageWidth(This,Width)	\
    ( (This)->lpVtbl -> get_ImageWidth(This,Width) ) 

#define IGcadRasterImage_put_ImageWidth(This,Width)	\
    ( (This)->lpVtbl -> put_ImageWidth(This,Width) ) 

#define IGcadRasterImage_get_ImageHeight(This,Height)	\
    ( (This)->lpVtbl -> get_ImageHeight(This,Height) ) 

#define IGcadRasterImage_put_ImageHeight(This,Height)	\
    ( (This)->lpVtbl -> put_ImageHeight(This,Height) ) 

#define IGcadRasterImage_get_Name(This,Name)	\
    ( (This)->lpVtbl -> get_Name(This,Name) ) 

#define IGcadRasterImage_put_Name(This,Name)	\
    ( (This)->lpVtbl -> put_Name(This,Name) ) 

#define IGcadRasterImage_put_ImageFile(This,imageFileName)	\
    ( (This)->lpVtbl -> put_ImageFile(This,imageFileName) ) 

#define IGcadRasterImage_get_ImageFile(This,imageFileName)	\
    ( (This)->lpVtbl -> get_ImageFile(This,imageFileName) ) 

#define IGcadRasterImage_get_ImageVisibility(This,fVisible)	\
    ( (This)->lpVtbl -> get_ImageVisibility(This,fVisible) ) 

#define IGcadRasterImage_put_ImageVisibility(This,fVisible)	\
    ( (This)->lpVtbl -> put_ImageVisibility(This,fVisible) ) 

#define IGcadRasterImage_get_ClippingEnabled(This,kClip)	\
    ( (This)->lpVtbl -> get_ClippingEnabled(This,kClip) ) 

#define IGcadRasterImage_put_ClippingEnabled(This,kClip)	\
    ( (This)->lpVtbl -> put_ClippingEnabled(This,kClip) ) 

#define IGcadRasterImage_get_transparency(This,bTransp)	\
    ( (This)->lpVtbl -> get_transparency(This,bTransp) ) 

#define IGcadRasterImage_put_transparency(This,bTransp)	\
    ( (This)->lpVtbl -> put_transparency(This,bTransp) ) 

#define IGcadRasterImage_ClipBoundary(This,boundry)	\
    ( (This)->lpVtbl -> ClipBoundary(This,boundry) ) 

#define IGcadRasterImage_get_Height(This,pixelHeight)	\
    ( (This)->lpVtbl -> get_Height(This,pixelHeight) ) 

#define IGcadRasterImage_get_Width(This,pixelWidth)	\
    ( (This)->lpVtbl -> get_Width(This,pixelWidth) ) 

#define IGcadRasterImage_get_ShowRotation(This,bShow)	\
    ( (This)->lpVtbl -> get_ShowRotation(This,bShow) ) 

#define IGcadRasterImage_put_ShowRotation(This,bShow)	\
    ( (This)->lpVtbl -> put_ShowRotation(This,bShow) ) 

#define IGcadRasterImage_get_ScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,ScaleFactor) ) 

#define IGcadRasterImage_put_ScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,ScaleFactor) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadRasterImage_INTERFACE_DEFINED__ */


#ifndef __IGcadLine_INTERFACE_DEFINED__
#define __IGcadLine_INTERFACE_DEFINED__

/* interface IGcadLine */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadLine;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EB1641A6-750D-49EB-A681-0BAEB77E7388")
    IGcadLine : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartPoint( 
            /* [retval][out] */ VARIANT *StartPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StartPoint( 
            /* [in] */ VARIANT StartPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EndPoint( 
            /* [retval][out] */ VARIANT *EndPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EndPoint( 
            /* [in] */ VARIANT EndPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Offset( 
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Delta( 
            /* [retval][out] */ VARIANT *Delta) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Length( 
            /* [retval][out] */ double *Length) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Angle( 
            /* [retval][out] */ GCAD_ANGLE *Angle) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadLineVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadLine * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadLine * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadLine * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadLine * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadLine * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadLine * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadLine * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadLine * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadLine * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadLine * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadLine * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadLine * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadLine * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadLine * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadLine * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadLine * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadLine * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadLine * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadLine * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadLine * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadLine * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadLine * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadLine * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadLine * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadLine * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadLine * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadLine * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadLine * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadLine * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadLine * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadLine * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadLine * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadLine * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadLine * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadLine * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadLine * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadLine * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadLine * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadLine * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadLine * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadLine * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadLine * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadLine * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadLine * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadLine * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadLine * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadLine * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadLine * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadLine * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadLine * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadLine * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadLine * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadLine * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadLine * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadLine * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadLine * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadLine * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadLine, get_StartPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartPoint )( 
            IGcadLine * This,
            /* [retval][out] */ VARIANT *StartPoint);
        
        DECLSPEC_XFGVIRT(IGcadLine, put_StartPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartPoint )( 
            IGcadLine * This,
            /* [in] */ VARIANT StartPoint);
        
        DECLSPEC_XFGVIRT(IGcadLine, get_EndPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndPoint )( 
            IGcadLine * This,
            /* [retval][out] */ VARIANT *EndPoint);
        
        DECLSPEC_XFGVIRT(IGcadLine, put_EndPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EndPoint )( 
            IGcadLine * This,
            /* [in] */ VARIANT EndPoint);
        
        DECLSPEC_XFGVIRT(IGcadLine, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadLine * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadLine, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadLine * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadLine, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadLine * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadLine, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadLine * This,
            /* [in] */ double Thickness);
        
        DECLSPEC_XFGVIRT(IGcadLine, Offset)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Offset )( 
            IGcadLine * This,
            /* [in] */ double Distance,
            /* [retval][out] */ VARIANT *pOffsetCurves);
        
        DECLSPEC_XFGVIRT(IGcadLine, get_Delta)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Delta )( 
            IGcadLine * This,
            /* [retval][out] */ VARIANT *Delta);
        
        DECLSPEC_XFGVIRT(IGcadLine, get_Length)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
            IGcadLine * This,
            /* [retval][out] */ double *Length);
        
        DECLSPEC_XFGVIRT(IGcadLine, get_Angle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Angle )( 
            IGcadLine * This,
            /* [retval][out] */ GCAD_ANGLE *Angle);
        
        END_INTERFACE
    } IGcadLineVtbl;

    interface IGcadLine
    {
        CONST_VTBL struct IGcadLineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadLine_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadLine_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadLine_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadLine_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadLine_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadLine_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadLine_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadLine_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadLine_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadLine_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadLine_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadLine_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadLine_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadLine_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadLine_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadLine_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadLine_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadLine_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadLine_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadLine_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadLine_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadLine_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadLine_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadLine_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadLine_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadLine_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadLine_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadLine_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadLine_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadLine_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadLine_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadLine_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadLine_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadLine_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadLine_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadLine_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadLine_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadLine_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadLine_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadLine_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadLine_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadLine_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadLine_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadLine_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadLine_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadLine_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadLine_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadLine_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadLine_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadLine_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadLine_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadLine_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadLine_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadLine_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadLine_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadLine_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadLine_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadLine_get_StartPoint(This,StartPoint)	\
    ( (This)->lpVtbl -> get_StartPoint(This,StartPoint) ) 

#define IGcadLine_put_StartPoint(This,StartPoint)	\
    ( (This)->lpVtbl -> put_StartPoint(This,StartPoint) ) 

#define IGcadLine_get_EndPoint(This,EndPoint)	\
    ( (This)->lpVtbl -> get_EndPoint(This,EndPoint) ) 

#define IGcadLine_put_EndPoint(This,EndPoint)	\
    ( (This)->lpVtbl -> put_EndPoint(This,EndPoint) ) 

#define IGcadLine_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadLine_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadLine_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadLine_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#define IGcadLine_Offset(This,Distance,pOffsetCurves)	\
    ( (This)->lpVtbl -> Offset(This,Distance,pOffsetCurves) ) 

#define IGcadLine_get_Delta(This,Delta)	\
    ( (This)->lpVtbl -> get_Delta(This,Delta) ) 

#define IGcadLine_get_Length(This,Length)	\
    ( (This)->lpVtbl -> get_Length(This,Length) ) 

#define IGcadLine_get_Angle(This,Angle)	\
    ( (This)->lpVtbl -> get_Angle(This,Angle) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadLine_INTERFACE_DEFINED__ */


#ifndef __IGcadPlotConfiguration_INTERFACE_DEFINED__
#define __IGcadPlotConfiguration_INTERFACE_DEFINED__

/* interface IGcadPlotConfiguration */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadPlotConfiguration;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("37A8DABC-FD78-4509-B9CA-396F4CC30472")
    IGcadPlotConfiguration : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR pName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ConfigName( 
            /* [retval][out] */ BSTR *pName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ConfigName( 
            /* [in] */ BSTR pName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CanonicalMediaName( 
            /* [retval][out] */ BSTR *pName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CanonicalMediaName( 
            /* [in] */ BSTR pName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PaperUnits( 
            /* [retval][out] */ GcPlotPaperUnits *pPaperUnits) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PaperUnits( 
            /* [in] */ GcPlotPaperUnits pPaperUnits) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotViewportBorders( 
            /* [retval][out] */ VARIANT_BOOL *pViewportBorders) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PlotViewportBorders( 
            /* [in] */ VARIANT_BOOL pViewportBorders) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ShowPlotStyles( 
            /* [retval][out] */ VARIANT_BOOL *pStyles) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ShowPlotStyles( 
            /* [in] */ VARIANT_BOOL pStyles) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotRotation( 
            /* [retval][out] */ GcPlotRotation *pRotation) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PlotRotation( 
            /* [in] */ GcPlotRotation pRotation) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CenterPlot( 
            /* [retval][out] */ VARIANT_BOOL *pCentered) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CenterPlot( 
            /* [in] */ VARIANT_BOOL pCentered) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotHidden( 
            /* [retval][out] */ VARIANT_BOOL *pHidden) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PlotHidden( 
            /* [in] */ VARIANT_BOOL pHidden) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotType( 
            /* [retval][out] */ GcPlotType *pType) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PlotType( 
            /* [in] */ GcPlotType pType) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ViewToPlot( 
            /* [retval][out] */ BSTR *pName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ViewToPlot( 
            /* [in] */ BSTR pName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UseStandardScale( 
            /* [retval][out] */ VARIANT_BOOL *pUseStdScale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UseStandardScale( 
            /* [in] */ VARIANT_BOOL pUseStdScale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StandardScale( 
            /* [retval][out] */ GcPlotScale *pStdScale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StandardScale( 
            /* [in] */ GcPlotScale pStdScale) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCustomScale( 
            /* [out] */ double *Numerator,
            /* [out] */ double *Denominator) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCustomScale( 
            /* [in] */ double Numerator,
            /* [in] */ double Denominator) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleLineweights( 
            /* [retval][out] */ VARIANT_BOOL *pScale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleLineweights( 
            /* [in] */ VARIANT_BOOL pScale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotWithLineweights( 
            /* [retval][out] */ VARIANT_BOOL *pPlot) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PlotWithLineweights( 
            /* [in] */ VARIANT_BOOL pPlot) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotViewportsFirst( 
            /* [retval][out] */ VARIANT_BOOL *pViewportsFirst) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PlotViewportsFirst( 
            /* [in] */ VARIANT_BOOL pViewportsFirst) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleSheet( 
            /* [retval][out] */ BSTR *pName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StyleSheet( 
            /* [in] */ BSTR pName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPaperMargins( 
            /* [out] */ VARIANT *LowerLeft,
            /* [out] */ VARIANT *UpperRight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPaperSize( 
            /* [out] */ double *Width,
            /* [out] */ double *Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotOrigin( 
            /* [retval][out] */ VARIANT *pOrigin) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PlotOrigin( 
            /* [in] */ VARIANT pOrigin) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetWindowToPlot( 
            /* [out] */ VARIANT *LowerLeft,
            /* [out] */ VARIANT *UpperRight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetWindowToPlot( 
            /* [in] */ VARIANT LowerLeft,
            /* [in] */ VARIANT UpperRight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotWithPlotStyles( 
            /* [retval][out] */ VARIANT_BOOL *pStyles) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PlotWithPlotStyles( 
            /* [in] */ VARIANT_BOOL pStyles) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ModelType( 
            /* [retval][out] */ VARIANT_BOOL *pType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CopyFrom( 
            /* [in] */ IDispatch *pPlotConfig) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCanonicalMediaNames( 
            /* [retval][out] */ VARIANT *pNames) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPlotDeviceNames( 
            /* [retval][out] */ VARIANT *pNames) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPlotStyleTableNames( 
            /* [retval][out] */ VARIANT *pNames) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RefreshPlotDeviceInfo( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLocaleMediaName( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ BSTR *pLocalName) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPlotConfigurationVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPlotConfiguration * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPlotConfiguration * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPlotConfiguration * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPlotConfiguration * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPlotConfiguration * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPlotConfiguration * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPlotConfiguration * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPlotConfiguration * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPlotConfiguration * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPlotConfiguration * This);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ BSTR *pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadPlotConfiguration * This,
            /* [in] */ BSTR pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_ConfigName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConfigName )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ BSTR *pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_ConfigName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConfigName )( 
            IGcadPlotConfiguration * This,
            /* [in] */ BSTR pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_CanonicalMediaName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanonicalMediaName )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ BSTR *pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_CanonicalMediaName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CanonicalMediaName )( 
            IGcadPlotConfiguration * This,
            /* [in] */ BSTR pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PaperUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PaperUnits )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ GcPlotPaperUnits *pPaperUnits);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PaperUnits)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PaperUnits )( 
            IGcadPlotConfiguration * This,
            /* [in] */ GcPlotPaperUnits pPaperUnits);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotViewportBorders)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotViewportBorders )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pViewportBorders);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotViewportBorders)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotViewportBorders )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT_BOOL pViewportBorders);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_ShowPlotStyles)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowPlotStyles )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pStyles);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_ShowPlotStyles)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowPlotStyles )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT_BOOL pStyles);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotRotation )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ GcPlotRotation *pRotation);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotRotation )( 
            IGcadPlotConfiguration * This,
            /* [in] */ GcPlotRotation pRotation);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_CenterPlot)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CenterPlot )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pCentered);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_CenterPlot)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CenterPlot )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT_BOOL pCentered);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotHidden)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotHidden )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pHidden);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotHidden)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotHidden )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT_BOOL pHidden);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotType )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ GcPlotType *pType);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotType )( 
            IGcadPlotConfiguration * This,
            /* [in] */ GcPlotType pType);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_ViewToPlot)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ViewToPlot )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ BSTR *pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_ViewToPlot)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ViewToPlot )( 
            IGcadPlotConfiguration * This,
            /* [in] */ BSTR pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_UseStandardScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UseStandardScale )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pUseStdScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_UseStandardScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UseStandardScale )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT_BOOL pUseStdScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_StandardScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StandardScale )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ GcPlotScale *pStdScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_StandardScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StandardScale )( 
            IGcadPlotConfiguration * This,
            /* [in] */ GcPlotScale pStdScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetCustomScale)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCustomScale )( 
            IGcadPlotConfiguration * This,
            /* [out] */ double *Numerator,
            /* [out] */ double *Denominator);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, SetCustomScale)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCustomScale )( 
            IGcadPlotConfiguration * This,
            /* [in] */ double Numerator,
            /* [in] */ double Denominator);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_ScaleLineweights)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleLineweights )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_ScaleLineweights)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleLineweights )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT_BOOL pScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotWithLineweights)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotWithLineweights )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pPlot);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotWithLineweights)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotWithLineweights )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT_BOOL pPlot);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotViewportsFirst)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotViewportsFirst )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pViewportsFirst);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotViewportsFirst)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotViewportsFirst )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT_BOOL pViewportsFirst);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_StyleSheet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleSheet )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ BSTR *pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_StyleSheet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleSheet )( 
            IGcadPlotConfiguration * This,
            /* [in] */ BSTR pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetPaperMargins)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPaperMargins )( 
            IGcadPlotConfiguration * This,
            /* [out] */ VARIANT *LowerLeft,
            /* [out] */ VARIANT *UpperRight);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetPaperSize)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPaperSize )( 
            IGcadPlotConfiguration * This,
            /* [out] */ double *Width,
            /* [out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotOrigin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotOrigin )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT *pOrigin);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotOrigin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotOrigin )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT pOrigin);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetWindowToPlot)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetWindowToPlot )( 
            IGcadPlotConfiguration * This,
            /* [out] */ VARIANT *LowerLeft,
            /* [out] */ VARIANT *UpperRight);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, SetWindowToPlot)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWindowToPlot )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT LowerLeft,
            /* [in] */ VARIANT UpperRight);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotWithPlotStyles)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotWithPlotStyles )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pStyles);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotWithPlotStyles)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotWithPlotStyles )( 
            IGcadPlotConfiguration * This,
            /* [in] */ VARIANT_BOOL pStyles);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_ModelType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ModelType )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pType);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, CopyFrom)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CopyFrom )( 
            IGcadPlotConfiguration * This,
            /* [in] */ IDispatch *pPlotConfig);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetCanonicalMediaNames)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCanonicalMediaNames )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT *pNames);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetPlotDeviceNames)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPlotDeviceNames )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT *pNames);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetPlotStyleTableNames)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPlotStyleTableNames )( 
            IGcadPlotConfiguration * This,
            /* [retval][out] */ VARIANT *pNames);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, RefreshPlotDeviceInfo)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RefreshPlotDeviceInfo )( 
            IGcadPlotConfiguration * This);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetLocaleMediaName)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLocaleMediaName )( 
            IGcadPlotConfiguration * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ BSTR *pLocalName);
        
        END_INTERFACE
    } IGcadPlotConfigurationVtbl;

    interface IGcadPlotConfiguration
    {
        CONST_VTBL struct IGcadPlotConfigurationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPlotConfiguration_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPlotConfiguration_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPlotConfiguration_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPlotConfiguration_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPlotConfiguration_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPlotConfiguration_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPlotConfiguration_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPlotConfiguration_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPlotConfiguration_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPlotConfiguration_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPlotConfiguration_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPlotConfiguration_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPlotConfiguration_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPlotConfiguration_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPlotConfiguration_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPlotConfiguration_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPlotConfiguration_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPlotConfiguration_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPlotConfiguration_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPlotConfiguration_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPlotConfiguration_get_Name(This,pName)	\
    ( (This)->lpVtbl -> get_Name(This,pName) ) 

#define IGcadPlotConfiguration_put_Name(This,pName)	\
    ( (This)->lpVtbl -> put_Name(This,pName) ) 

#define IGcadPlotConfiguration_get_ConfigName(This,pName)	\
    ( (This)->lpVtbl -> get_ConfigName(This,pName) ) 

#define IGcadPlotConfiguration_put_ConfigName(This,pName)	\
    ( (This)->lpVtbl -> put_ConfigName(This,pName) ) 

#define IGcadPlotConfiguration_get_CanonicalMediaName(This,pName)	\
    ( (This)->lpVtbl -> get_CanonicalMediaName(This,pName) ) 

#define IGcadPlotConfiguration_put_CanonicalMediaName(This,pName)	\
    ( (This)->lpVtbl -> put_CanonicalMediaName(This,pName) ) 

#define IGcadPlotConfiguration_get_PaperUnits(This,pPaperUnits)	\
    ( (This)->lpVtbl -> get_PaperUnits(This,pPaperUnits) ) 

#define IGcadPlotConfiguration_put_PaperUnits(This,pPaperUnits)	\
    ( (This)->lpVtbl -> put_PaperUnits(This,pPaperUnits) ) 

#define IGcadPlotConfiguration_get_PlotViewportBorders(This,pViewportBorders)	\
    ( (This)->lpVtbl -> get_PlotViewportBorders(This,pViewportBorders) ) 

#define IGcadPlotConfiguration_put_PlotViewportBorders(This,pViewportBorders)	\
    ( (This)->lpVtbl -> put_PlotViewportBorders(This,pViewportBorders) ) 

#define IGcadPlotConfiguration_get_ShowPlotStyles(This,pStyles)	\
    ( (This)->lpVtbl -> get_ShowPlotStyles(This,pStyles) ) 

#define IGcadPlotConfiguration_put_ShowPlotStyles(This,pStyles)	\
    ( (This)->lpVtbl -> put_ShowPlotStyles(This,pStyles) ) 

#define IGcadPlotConfiguration_get_PlotRotation(This,pRotation)	\
    ( (This)->lpVtbl -> get_PlotRotation(This,pRotation) ) 

#define IGcadPlotConfiguration_put_PlotRotation(This,pRotation)	\
    ( (This)->lpVtbl -> put_PlotRotation(This,pRotation) ) 

#define IGcadPlotConfiguration_get_CenterPlot(This,pCentered)	\
    ( (This)->lpVtbl -> get_CenterPlot(This,pCentered) ) 

#define IGcadPlotConfiguration_put_CenterPlot(This,pCentered)	\
    ( (This)->lpVtbl -> put_CenterPlot(This,pCentered) ) 

#define IGcadPlotConfiguration_get_PlotHidden(This,pHidden)	\
    ( (This)->lpVtbl -> get_PlotHidden(This,pHidden) ) 

#define IGcadPlotConfiguration_put_PlotHidden(This,pHidden)	\
    ( (This)->lpVtbl -> put_PlotHidden(This,pHidden) ) 

#define IGcadPlotConfiguration_get_PlotType(This,pType)	\
    ( (This)->lpVtbl -> get_PlotType(This,pType) ) 

#define IGcadPlotConfiguration_put_PlotType(This,pType)	\
    ( (This)->lpVtbl -> put_PlotType(This,pType) ) 

#define IGcadPlotConfiguration_get_ViewToPlot(This,pName)	\
    ( (This)->lpVtbl -> get_ViewToPlot(This,pName) ) 

#define IGcadPlotConfiguration_put_ViewToPlot(This,pName)	\
    ( (This)->lpVtbl -> put_ViewToPlot(This,pName) ) 

#define IGcadPlotConfiguration_get_UseStandardScale(This,pUseStdScale)	\
    ( (This)->lpVtbl -> get_UseStandardScale(This,pUseStdScale) ) 

#define IGcadPlotConfiguration_put_UseStandardScale(This,pUseStdScale)	\
    ( (This)->lpVtbl -> put_UseStandardScale(This,pUseStdScale) ) 

#define IGcadPlotConfiguration_get_StandardScale(This,pStdScale)	\
    ( (This)->lpVtbl -> get_StandardScale(This,pStdScale) ) 

#define IGcadPlotConfiguration_put_StandardScale(This,pStdScale)	\
    ( (This)->lpVtbl -> put_StandardScale(This,pStdScale) ) 

#define IGcadPlotConfiguration_GetCustomScale(This,Numerator,Denominator)	\
    ( (This)->lpVtbl -> GetCustomScale(This,Numerator,Denominator) ) 

#define IGcadPlotConfiguration_SetCustomScale(This,Numerator,Denominator)	\
    ( (This)->lpVtbl -> SetCustomScale(This,Numerator,Denominator) ) 

#define IGcadPlotConfiguration_get_ScaleLineweights(This,pScale)	\
    ( (This)->lpVtbl -> get_ScaleLineweights(This,pScale) ) 

#define IGcadPlotConfiguration_put_ScaleLineweights(This,pScale)	\
    ( (This)->lpVtbl -> put_ScaleLineweights(This,pScale) ) 

#define IGcadPlotConfiguration_get_PlotWithLineweights(This,pPlot)	\
    ( (This)->lpVtbl -> get_PlotWithLineweights(This,pPlot) ) 

#define IGcadPlotConfiguration_put_PlotWithLineweights(This,pPlot)	\
    ( (This)->lpVtbl -> put_PlotWithLineweights(This,pPlot) ) 

#define IGcadPlotConfiguration_get_PlotViewportsFirst(This,pViewportsFirst)	\
    ( (This)->lpVtbl -> get_PlotViewportsFirst(This,pViewportsFirst) ) 

#define IGcadPlotConfiguration_put_PlotViewportsFirst(This,pViewportsFirst)	\
    ( (This)->lpVtbl -> put_PlotViewportsFirst(This,pViewportsFirst) ) 

#define IGcadPlotConfiguration_get_StyleSheet(This,pName)	\
    ( (This)->lpVtbl -> get_StyleSheet(This,pName) ) 

#define IGcadPlotConfiguration_put_StyleSheet(This,pName)	\
    ( (This)->lpVtbl -> put_StyleSheet(This,pName) ) 

#define IGcadPlotConfiguration_GetPaperMargins(This,LowerLeft,UpperRight)	\
    ( (This)->lpVtbl -> GetPaperMargins(This,LowerLeft,UpperRight) ) 

#define IGcadPlotConfiguration_GetPaperSize(This,Width,Height)	\
    ( (This)->lpVtbl -> GetPaperSize(This,Width,Height) ) 

#define IGcadPlotConfiguration_get_PlotOrigin(This,pOrigin)	\
    ( (This)->lpVtbl -> get_PlotOrigin(This,pOrigin) ) 

#define IGcadPlotConfiguration_put_PlotOrigin(This,pOrigin)	\
    ( (This)->lpVtbl -> put_PlotOrigin(This,pOrigin) ) 

#define IGcadPlotConfiguration_GetWindowToPlot(This,LowerLeft,UpperRight)	\
    ( (This)->lpVtbl -> GetWindowToPlot(This,LowerLeft,UpperRight) ) 

#define IGcadPlotConfiguration_SetWindowToPlot(This,LowerLeft,UpperRight)	\
    ( (This)->lpVtbl -> SetWindowToPlot(This,LowerLeft,UpperRight) ) 

#define IGcadPlotConfiguration_get_PlotWithPlotStyles(This,pStyles)	\
    ( (This)->lpVtbl -> get_PlotWithPlotStyles(This,pStyles) ) 

#define IGcadPlotConfiguration_put_PlotWithPlotStyles(This,pStyles)	\
    ( (This)->lpVtbl -> put_PlotWithPlotStyles(This,pStyles) ) 

#define IGcadPlotConfiguration_get_ModelType(This,pType)	\
    ( (This)->lpVtbl -> get_ModelType(This,pType) ) 

#define IGcadPlotConfiguration_CopyFrom(This,pPlotConfig)	\
    ( (This)->lpVtbl -> CopyFrom(This,pPlotConfig) ) 

#define IGcadPlotConfiguration_GetCanonicalMediaNames(This,pNames)	\
    ( (This)->lpVtbl -> GetCanonicalMediaNames(This,pNames) ) 

#define IGcadPlotConfiguration_GetPlotDeviceNames(This,pNames)	\
    ( (This)->lpVtbl -> GetPlotDeviceNames(This,pNames) ) 

#define IGcadPlotConfiguration_GetPlotStyleTableNames(This,pNames)	\
    ( (This)->lpVtbl -> GetPlotStyleTableNames(This,pNames) ) 

#define IGcadPlotConfiguration_RefreshPlotDeviceInfo(This)	\
    ( (This)->lpVtbl -> RefreshPlotDeviceInfo(This) ) 

#define IGcadPlotConfiguration_GetLocaleMediaName(This,Name,pLocalName)	\
    ( (This)->lpVtbl -> GetLocaleMediaName(This,Name,pLocalName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPlotConfiguration_INTERFACE_DEFINED__ */


#ifndef __IGcadLayout_INTERFACE_DEFINED__
#define __IGcadLayout_INTERFACE_DEFINED__

/* interface IGcadLayout */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadLayout;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F8AE8A77-1909-452A-95E8-0B833451FD4B")
    IGcadLayout : public IGcadPlotConfiguration
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Block( 
            /* [retval][out] */ IGcadBlock **pBlock) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TabOrder( 
            /* [retval][out] */ long *pOrder) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TabOrder( 
            /* [in] */ long pOrder) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadLayoutVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadLayout * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadLayout * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadLayout * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadLayout * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadLayout * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadLayout * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadLayout * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadLayout * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadLayout * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadLayout * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadLayout * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadLayout * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadLayout * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadLayout * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadLayout * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadLayout * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadLayout * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadLayout * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadLayout * This);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadLayout * This,
            /* [retval][out] */ BSTR *pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadLayout * This,
            /* [in] */ BSTR pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_ConfigName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConfigName )( 
            IGcadLayout * This,
            /* [retval][out] */ BSTR *pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_ConfigName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConfigName )( 
            IGcadLayout * This,
            /* [in] */ BSTR pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_CanonicalMediaName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanonicalMediaName )( 
            IGcadLayout * This,
            /* [retval][out] */ BSTR *pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_CanonicalMediaName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CanonicalMediaName )( 
            IGcadLayout * This,
            /* [in] */ BSTR pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PaperUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PaperUnits )( 
            IGcadLayout * This,
            /* [retval][out] */ GcPlotPaperUnits *pPaperUnits);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PaperUnits)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PaperUnits )( 
            IGcadLayout * This,
            /* [in] */ GcPlotPaperUnits pPaperUnits);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotViewportBorders)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotViewportBorders )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT_BOOL *pViewportBorders);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotViewportBorders)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotViewportBorders )( 
            IGcadLayout * This,
            /* [in] */ VARIANT_BOOL pViewportBorders);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_ShowPlotStyles)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowPlotStyles )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT_BOOL *pStyles);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_ShowPlotStyles)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowPlotStyles )( 
            IGcadLayout * This,
            /* [in] */ VARIANT_BOOL pStyles);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotRotation )( 
            IGcadLayout * This,
            /* [retval][out] */ GcPlotRotation *pRotation);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotRotation )( 
            IGcadLayout * This,
            /* [in] */ GcPlotRotation pRotation);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_CenterPlot)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CenterPlot )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT_BOOL *pCentered);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_CenterPlot)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CenterPlot )( 
            IGcadLayout * This,
            /* [in] */ VARIANT_BOOL pCentered);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotHidden)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotHidden )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT_BOOL *pHidden);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotHidden)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotHidden )( 
            IGcadLayout * This,
            /* [in] */ VARIANT_BOOL pHidden);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotType )( 
            IGcadLayout * This,
            /* [retval][out] */ GcPlotType *pType);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotType )( 
            IGcadLayout * This,
            /* [in] */ GcPlotType pType);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_ViewToPlot)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ViewToPlot )( 
            IGcadLayout * This,
            /* [retval][out] */ BSTR *pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_ViewToPlot)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ViewToPlot )( 
            IGcadLayout * This,
            /* [in] */ BSTR pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_UseStandardScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UseStandardScale )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT_BOOL *pUseStdScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_UseStandardScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UseStandardScale )( 
            IGcadLayout * This,
            /* [in] */ VARIANT_BOOL pUseStdScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_StandardScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StandardScale )( 
            IGcadLayout * This,
            /* [retval][out] */ GcPlotScale *pStdScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_StandardScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StandardScale )( 
            IGcadLayout * This,
            /* [in] */ GcPlotScale pStdScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetCustomScale)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCustomScale )( 
            IGcadLayout * This,
            /* [out] */ double *Numerator,
            /* [out] */ double *Denominator);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, SetCustomScale)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCustomScale )( 
            IGcadLayout * This,
            /* [in] */ double Numerator,
            /* [in] */ double Denominator);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_ScaleLineweights)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleLineweights )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT_BOOL *pScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_ScaleLineweights)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleLineweights )( 
            IGcadLayout * This,
            /* [in] */ VARIANT_BOOL pScale);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotWithLineweights)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotWithLineweights )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT_BOOL *pPlot);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotWithLineweights)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotWithLineweights )( 
            IGcadLayout * This,
            /* [in] */ VARIANT_BOOL pPlot);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotViewportsFirst)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotViewportsFirst )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT_BOOL *pViewportsFirst);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotViewportsFirst)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotViewportsFirst )( 
            IGcadLayout * This,
            /* [in] */ VARIANT_BOOL pViewportsFirst);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_StyleSheet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleSheet )( 
            IGcadLayout * This,
            /* [retval][out] */ BSTR *pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_StyleSheet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleSheet )( 
            IGcadLayout * This,
            /* [in] */ BSTR pName);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetPaperMargins)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPaperMargins )( 
            IGcadLayout * This,
            /* [out] */ VARIANT *LowerLeft,
            /* [out] */ VARIANT *UpperRight);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetPaperSize)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPaperSize )( 
            IGcadLayout * This,
            /* [out] */ double *Width,
            /* [out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotOrigin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotOrigin )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT *pOrigin);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotOrigin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotOrigin )( 
            IGcadLayout * This,
            /* [in] */ VARIANT pOrigin);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetWindowToPlot)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetWindowToPlot )( 
            IGcadLayout * This,
            /* [out] */ VARIANT *LowerLeft,
            /* [out] */ VARIANT *UpperRight);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, SetWindowToPlot)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWindowToPlot )( 
            IGcadLayout * This,
            /* [in] */ VARIANT LowerLeft,
            /* [in] */ VARIANT UpperRight);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_PlotWithPlotStyles)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotWithPlotStyles )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT_BOOL *pStyles);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, put_PlotWithPlotStyles)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotWithPlotStyles )( 
            IGcadLayout * This,
            /* [in] */ VARIANT_BOOL pStyles);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, get_ModelType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ModelType )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT_BOOL *pType);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, CopyFrom)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CopyFrom )( 
            IGcadLayout * This,
            /* [in] */ IDispatch *pPlotConfig);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetCanonicalMediaNames)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCanonicalMediaNames )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT *pNames);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetPlotDeviceNames)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPlotDeviceNames )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT *pNames);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetPlotStyleTableNames)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPlotStyleTableNames )( 
            IGcadLayout * This,
            /* [retval][out] */ VARIANT *pNames);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, RefreshPlotDeviceInfo)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RefreshPlotDeviceInfo )( 
            IGcadLayout * This);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfiguration, GetLocaleMediaName)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLocaleMediaName )( 
            IGcadLayout * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ BSTR *pLocalName);
        
        DECLSPEC_XFGVIRT(IGcadLayout, get_Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Block )( 
            IGcadLayout * This,
            /* [retval][out] */ IGcadBlock **pBlock);
        
        DECLSPEC_XFGVIRT(IGcadLayout, get_TabOrder)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TabOrder )( 
            IGcadLayout * This,
            /* [retval][out] */ long *pOrder);
        
        DECLSPEC_XFGVIRT(IGcadLayout, put_TabOrder)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TabOrder )( 
            IGcadLayout * This,
            /* [in] */ long pOrder);
        
        END_INTERFACE
    } IGcadLayoutVtbl;

    interface IGcadLayout
    {
        CONST_VTBL struct IGcadLayoutVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadLayout_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadLayout_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadLayout_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadLayout_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadLayout_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadLayout_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadLayout_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadLayout_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadLayout_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadLayout_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadLayout_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadLayout_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadLayout_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadLayout_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadLayout_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadLayout_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadLayout_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadLayout_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadLayout_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadLayout_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadLayout_get_Name(This,pName)	\
    ( (This)->lpVtbl -> get_Name(This,pName) ) 

#define IGcadLayout_put_Name(This,pName)	\
    ( (This)->lpVtbl -> put_Name(This,pName) ) 

#define IGcadLayout_get_ConfigName(This,pName)	\
    ( (This)->lpVtbl -> get_ConfigName(This,pName) ) 

#define IGcadLayout_put_ConfigName(This,pName)	\
    ( (This)->lpVtbl -> put_ConfigName(This,pName) ) 

#define IGcadLayout_get_CanonicalMediaName(This,pName)	\
    ( (This)->lpVtbl -> get_CanonicalMediaName(This,pName) ) 

#define IGcadLayout_put_CanonicalMediaName(This,pName)	\
    ( (This)->lpVtbl -> put_CanonicalMediaName(This,pName) ) 

#define IGcadLayout_get_PaperUnits(This,pPaperUnits)	\
    ( (This)->lpVtbl -> get_PaperUnits(This,pPaperUnits) ) 

#define IGcadLayout_put_PaperUnits(This,pPaperUnits)	\
    ( (This)->lpVtbl -> put_PaperUnits(This,pPaperUnits) ) 

#define IGcadLayout_get_PlotViewportBorders(This,pViewportBorders)	\
    ( (This)->lpVtbl -> get_PlotViewportBorders(This,pViewportBorders) ) 

#define IGcadLayout_put_PlotViewportBorders(This,pViewportBorders)	\
    ( (This)->lpVtbl -> put_PlotViewportBorders(This,pViewportBorders) ) 

#define IGcadLayout_get_ShowPlotStyles(This,pStyles)	\
    ( (This)->lpVtbl -> get_ShowPlotStyles(This,pStyles) ) 

#define IGcadLayout_put_ShowPlotStyles(This,pStyles)	\
    ( (This)->lpVtbl -> put_ShowPlotStyles(This,pStyles) ) 

#define IGcadLayout_get_PlotRotation(This,pRotation)	\
    ( (This)->lpVtbl -> get_PlotRotation(This,pRotation) ) 

#define IGcadLayout_put_PlotRotation(This,pRotation)	\
    ( (This)->lpVtbl -> put_PlotRotation(This,pRotation) ) 

#define IGcadLayout_get_CenterPlot(This,pCentered)	\
    ( (This)->lpVtbl -> get_CenterPlot(This,pCentered) ) 

#define IGcadLayout_put_CenterPlot(This,pCentered)	\
    ( (This)->lpVtbl -> put_CenterPlot(This,pCentered) ) 

#define IGcadLayout_get_PlotHidden(This,pHidden)	\
    ( (This)->lpVtbl -> get_PlotHidden(This,pHidden) ) 

#define IGcadLayout_put_PlotHidden(This,pHidden)	\
    ( (This)->lpVtbl -> put_PlotHidden(This,pHidden) ) 

#define IGcadLayout_get_PlotType(This,pType)	\
    ( (This)->lpVtbl -> get_PlotType(This,pType) ) 

#define IGcadLayout_put_PlotType(This,pType)	\
    ( (This)->lpVtbl -> put_PlotType(This,pType) ) 

#define IGcadLayout_get_ViewToPlot(This,pName)	\
    ( (This)->lpVtbl -> get_ViewToPlot(This,pName) ) 

#define IGcadLayout_put_ViewToPlot(This,pName)	\
    ( (This)->lpVtbl -> put_ViewToPlot(This,pName) ) 

#define IGcadLayout_get_UseStandardScale(This,pUseStdScale)	\
    ( (This)->lpVtbl -> get_UseStandardScale(This,pUseStdScale) ) 

#define IGcadLayout_put_UseStandardScale(This,pUseStdScale)	\
    ( (This)->lpVtbl -> put_UseStandardScale(This,pUseStdScale) ) 

#define IGcadLayout_get_StandardScale(This,pStdScale)	\
    ( (This)->lpVtbl -> get_StandardScale(This,pStdScale) ) 

#define IGcadLayout_put_StandardScale(This,pStdScale)	\
    ( (This)->lpVtbl -> put_StandardScale(This,pStdScale) ) 

#define IGcadLayout_GetCustomScale(This,Numerator,Denominator)	\
    ( (This)->lpVtbl -> GetCustomScale(This,Numerator,Denominator) ) 

#define IGcadLayout_SetCustomScale(This,Numerator,Denominator)	\
    ( (This)->lpVtbl -> SetCustomScale(This,Numerator,Denominator) ) 

#define IGcadLayout_get_ScaleLineweights(This,pScale)	\
    ( (This)->lpVtbl -> get_ScaleLineweights(This,pScale) ) 

#define IGcadLayout_put_ScaleLineweights(This,pScale)	\
    ( (This)->lpVtbl -> put_ScaleLineweights(This,pScale) ) 

#define IGcadLayout_get_PlotWithLineweights(This,pPlot)	\
    ( (This)->lpVtbl -> get_PlotWithLineweights(This,pPlot) ) 

#define IGcadLayout_put_PlotWithLineweights(This,pPlot)	\
    ( (This)->lpVtbl -> put_PlotWithLineweights(This,pPlot) ) 

#define IGcadLayout_get_PlotViewportsFirst(This,pViewportsFirst)	\
    ( (This)->lpVtbl -> get_PlotViewportsFirst(This,pViewportsFirst) ) 

#define IGcadLayout_put_PlotViewportsFirst(This,pViewportsFirst)	\
    ( (This)->lpVtbl -> put_PlotViewportsFirst(This,pViewportsFirst) ) 

#define IGcadLayout_get_StyleSheet(This,pName)	\
    ( (This)->lpVtbl -> get_StyleSheet(This,pName) ) 

#define IGcadLayout_put_StyleSheet(This,pName)	\
    ( (This)->lpVtbl -> put_StyleSheet(This,pName) ) 

#define IGcadLayout_GetPaperMargins(This,LowerLeft,UpperRight)	\
    ( (This)->lpVtbl -> GetPaperMargins(This,LowerLeft,UpperRight) ) 

#define IGcadLayout_GetPaperSize(This,Width,Height)	\
    ( (This)->lpVtbl -> GetPaperSize(This,Width,Height) ) 

#define IGcadLayout_get_PlotOrigin(This,pOrigin)	\
    ( (This)->lpVtbl -> get_PlotOrigin(This,pOrigin) ) 

#define IGcadLayout_put_PlotOrigin(This,pOrigin)	\
    ( (This)->lpVtbl -> put_PlotOrigin(This,pOrigin) ) 

#define IGcadLayout_GetWindowToPlot(This,LowerLeft,UpperRight)	\
    ( (This)->lpVtbl -> GetWindowToPlot(This,LowerLeft,UpperRight) ) 

#define IGcadLayout_SetWindowToPlot(This,LowerLeft,UpperRight)	\
    ( (This)->lpVtbl -> SetWindowToPlot(This,LowerLeft,UpperRight) ) 

#define IGcadLayout_get_PlotWithPlotStyles(This,pStyles)	\
    ( (This)->lpVtbl -> get_PlotWithPlotStyles(This,pStyles) ) 

#define IGcadLayout_put_PlotWithPlotStyles(This,pStyles)	\
    ( (This)->lpVtbl -> put_PlotWithPlotStyles(This,pStyles) ) 

#define IGcadLayout_get_ModelType(This,pType)	\
    ( (This)->lpVtbl -> get_ModelType(This,pType) ) 

#define IGcadLayout_CopyFrom(This,pPlotConfig)	\
    ( (This)->lpVtbl -> CopyFrom(This,pPlotConfig) ) 

#define IGcadLayout_GetCanonicalMediaNames(This,pNames)	\
    ( (This)->lpVtbl -> GetCanonicalMediaNames(This,pNames) ) 

#define IGcadLayout_GetPlotDeviceNames(This,pNames)	\
    ( (This)->lpVtbl -> GetPlotDeviceNames(This,pNames) ) 

#define IGcadLayout_GetPlotStyleTableNames(This,pNames)	\
    ( (This)->lpVtbl -> GetPlotStyleTableNames(This,pNames) ) 

#define IGcadLayout_RefreshPlotDeviceInfo(This)	\
    ( (This)->lpVtbl -> RefreshPlotDeviceInfo(This) ) 

#define IGcadLayout_GetLocaleMediaName(This,Name,pLocalName)	\
    ( (This)->lpVtbl -> GetLocaleMediaName(This,Name,pLocalName) ) 


#define IGcadLayout_get_Block(This,pBlock)	\
    ( (This)->lpVtbl -> get_Block(This,pBlock) ) 

#define IGcadLayout_get_TabOrder(This,pOrder)	\
    ( (This)->lpVtbl -> get_TabOrder(This,pOrder) ) 

#define IGcadLayout_put_TabOrder(This,pOrder)	\
    ( (This)->lpVtbl -> put_TabOrder(This,pOrder) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadLayout_INTERFACE_DEFINED__ */


#ifndef __IGcadMInsertBlock_INTERFACE_DEFINED__
#define __IGcadMInsertBlock_INTERFACE_DEFINED__

/* interface IGcadMInsertBlock */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadMInsertBlock;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2EA3AB94-E461-4DDC-9B9B-894406F31256")
    IGcadMInsertBlock : public IGcadBlockReference
    {
    public:
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Columns( 
            /* [in] */ long NumColumns) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Columns( 
            /* [retval][out] */ long *NumColumns) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ColumnSpacing( 
            /* [in] */ double Spacing) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ColumnSpacing( 
            /* [retval][out] */ double *Spacing) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rows( 
            /* [in] */ long NumRows) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rows( 
            /* [retval][out] */ long *NumRows) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RowSpacing( 
            /* [in] */ double Spacing) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RowSpacing( 
            /* [retval][out] */ double *Spacing) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadMInsertBlockVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadMInsertBlock * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadMInsertBlock * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadMInsertBlock * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadMInsertBlock * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadMInsertBlock * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadMInsertBlock * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadMInsertBlock * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadMInsertBlock * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadMInsertBlock * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadMInsertBlock * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadMInsertBlock * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadMInsertBlock * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadMInsertBlock * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadMInsertBlock * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadMInsertBlock * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadMInsertBlock * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadMInsertBlock * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadMInsertBlock * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadMInsertBlock * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadMInsertBlock * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadMInsertBlock * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadMInsertBlock * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadMInsertBlock * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadMInsertBlock * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadMInsertBlock * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadMInsertBlock * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadMInsertBlock * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_XScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_XScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_YScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_YScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_YScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_YScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_ZScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ZScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_ZScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ZScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, Explode)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Explode )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetAttributes)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAttributes )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ VARIANT *pAttrObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetConstantAttributes)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConstantAttributes )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ VARIANT *pAttrObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_HasAttributes)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasAttributes )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ VARIANT_BOOL *bHas);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_EffectiveName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EffectiveName )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ BSTR *EffectiveName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_IsDynamicBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsDynamicBlock )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ VARIANT_BOOL *pDynamicBlock);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetDynamicBlockProperties)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDynamicBlockProperties )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ VARIANT *dynamicPropertyArray);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ResetBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ResetBlock )( 
            IGcadMInsertBlock * This);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ConvertToAnonymousBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConvertToAnonymousBlock )( 
            IGcadMInsertBlock * This);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ConvertToStaticBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConvertToStaticBlock )( 
            IGcadMInsertBlock * This,
            /* [in] */ BSTR newBlockName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_XEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XEffectiveScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_XEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XEffectiveScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_YEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_YEffectiveScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_YEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_YEffectiveScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_ZEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ZEffectiveScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_ZEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ZEffectiveScaleFactor )( 
            IGcadMInsertBlock * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsUnits )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ BSTR *Units);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsUnitsFactor )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadMInsertBlock, put_Columns)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Columns )( 
            IGcadMInsertBlock * This,
            /* [in] */ long NumColumns);
        
        DECLSPEC_XFGVIRT(IGcadMInsertBlock, get_Columns)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Columns )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ long *NumColumns);
        
        DECLSPEC_XFGVIRT(IGcadMInsertBlock, put_ColumnSpacing)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColumnSpacing )( 
            IGcadMInsertBlock * This,
            /* [in] */ double Spacing);
        
        DECLSPEC_XFGVIRT(IGcadMInsertBlock, get_ColumnSpacing)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColumnSpacing )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ double *Spacing);
        
        DECLSPEC_XFGVIRT(IGcadMInsertBlock, put_Rows)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rows )( 
            IGcadMInsertBlock * This,
            /* [in] */ long NumRows);
        
        DECLSPEC_XFGVIRT(IGcadMInsertBlock, get_Rows)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rows )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ long *NumRows);
        
        DECLSPEC_XFGVIRT(IGcadMInsertBlock, put_RowSpacing)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RowSpacing )( 
            IGcadMInsertBlock * This,
            /* [in] */ double Spacing);
        
        DECLSPEC_XFGVIRT(IGcadMInsertBlock, get_RowSpacing)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RowSpacing )( 
            IGcadMInsertBlock * This,
            /* [retval][out] */ double *Spacing);
        
        END_INTERFACE
    } IGcadMInsertBlockVtbl;

    interface IGcadMInsertBlock
    {
        CONST_VTBL struct IGcadMInsertBlockVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadMInsertBlock_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadMInsertBlock_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadMInsertBlock_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadMInsertBlock_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadMInsertBlock_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadMInsertBlock_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadMInsertBlock_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadMInsertBlock_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadMInsertBlock_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadMInsertBlock_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadMInsertBlock_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadMInsertBlock_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadMInsertBlock_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadMInsertBlock_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadMInsertBlock_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadMInsertBlock_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadMInsertBlock_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadMInsertBlock_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadMInsertBlock_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadMInsertBlock_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadMInsertBlock_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadMInsertBlock_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadMInsertBlock_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadMInsertBlock_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadMInsertBlock_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadMInsertBlock_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadMInsertBlock_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadMInsertBlock_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadMInsertBlock_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadMInsertBlock_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadMInsertBlock_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadMInsertBlock_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadMInsertBlock_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadMInsertBlock_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadMInsertBlock_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadMInsertBlock_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadMInsertBlock_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadMInsertBlock_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadMInsertBlock_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadMInsertBlock_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadMInsertBlock_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadMInsertBlock_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadMInsertBlock_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadMInsertBlock_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadMInsertBlock_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadMInsertBlock_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadMInsertBlock_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadMInsertBlock_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadMInsertBlock_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadMInsertBlock_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadMInsertBlock_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadMInsertBlock_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadMInsertBlock_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadMInsertBlock_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadMInsertBlock_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadMInsertBlock_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadMInsertBlock_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadMInsertBlock_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadMInsertBlock_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadMInsertBlock_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadMInsertBlock_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadMInsertBlock_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadMInsertBlock_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadMInsertBlock_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadMInsertBlock_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadMInsertBlock_get_XScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_XScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_put_XScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_XScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_get_YScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_YScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_put_YScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_YScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_get_ZScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ZScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_put_ZScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ZScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_Explode(This,pArrayObjs)	\
    ( (This)->lpVtbl -> Explode(This,pArrayObjs) ) 

#define IGcadMInsertBlock_GetAttributes(This,pAttrObjs)	\
    ( (This)->lpVtbl -> GetAttributes(This,pAttrObjs) ) 

#define IGcadMInsertBlock_GetConstantAttributes(This,pAttrObjs)	\
    ( (This)->lpVtbl -> GetConstantAttributes(This,pAttrObjs) ) 

#define IGcadMInsertBlock_get_HasAttributes(This,bHas)	\
    ( (This)->lpVtbl -> get_HasAttributes(This,bHas) ) 

#define IGcadMInsertBlock_get_EffectiveName(This,EffectiveName)	\
    ( (This)->lpVtbl -> get_EffectiveName(This,EffectiveName) ) 

#define IGcadMInsertBlock_get_IsDynamicBlock(This,pDynamicBlock)	\
    ( (This)->lpVtbl -> get_IsDynamicBlock(This,pDynamicBlock) ) 

#define IGcadMInsertBlock_GetDynamicBlockProperties(This,dynamicPropertyArray)	\
    ( (This)->lpVtbl -> GetDynamicBlockProperties(This,dynamicPropertyArray) ) 

#define IGcadMInsertBlock_ResetBlock(This)	\
    ( (This)->lpVtbl -> ResetBlock(This) ) 

#define IGcadMInsertBlock_ConvertToAnonymousBlock(This)	\
    ( (This)->lpVtbl -> ConvertToAnonymousBlock(This) ) 

#define IGcadMInsertBlock_ConvertToStaticBlock(This,newBlockName)	\
    ( (This)->lpVtbl -> ConvertToStaticBlock(This,newBlockName) ) 

#define IGcadMInsertBlock_get_XEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_XEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_put_XEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_XEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_get_YEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_YEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_put_YEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_YEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_get_ZEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ZEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_put_ZEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ZEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadMInsertBlock_get_InsUnits(This,Units)	\
    ( (This)->lpVtbl -> get_InsUnits(This,Units) ) 

#define IGcadMInsertBlock_get_InsUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_InsUnitsFactor(This,factor) ) 


#define IGcadMInsertBlock_put_Columns(This,NumColumns)	\
    ( (This)->lpVtbl -> put_Columns(This,NumColumns) ) 

#define IGcadMInsertBlock_get_Columns(This,NumColumns)	\
    ( (This)->lpVtbl -> get_Columns(This,NumColumns) ) 

#define IGcadMInsertBlock_put_ColumnSpacing(This,Spacing)	\
    ( (This)->lpVtbl -> put_ColumnSpacing(This,Spacing) ) 

#define IGcadMInsertBlock_get_ColumnSpacing(This,Spacing)	\
    ( (This)->lpVtbl -> get_ColumnSpacing(This,Spacing) ) 

#define IGcadMInsertBlock_put_Rows(This,NumRows)	\
    ( (This)->lpVtbl -> put_Rows(This,NumRows) ) 

#define IGcadMInsertBlock_get_Rows(This,NumRows)	\
    ( (This)->lpVtbl -> get_Rows(This,NumRows) ) 

#define IGcadMInsertBlock_put_RowSpacing(This,Spacing)	\
    ( (This)->lpVtbl -> put_RowSpacing(This,Spacing) ) 

#define IGcadMInsertBlock_get_RowSpacing(This,Spacing)	\
    ( (This)->lpVtbl -> get_RowSpacing(This,Spacing) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadMInsertBlock_INTERFACE_DEFINED__ */


#ifndef __IGcadPolyfaceMesh_INTERFACE_DEFINED__
#define __IGcadPolyfaceMesh_INTERFACE_DEFINED__

/* interface IGcadPolyfaceMesh */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadPolyfaceMesh;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FD4B5856-B661-4E10-8B79-1E793FDB0E50")
    IGcadPolyfaceMesh : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT Vertices) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *Vertices) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinate( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinate( 
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NumberOfVertices( 
            /* [retval][out] */ long *NumVertices) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NumberOfFaces( 
            /* [retval][out] */ long *NumFaces) = 0;
        
        virtual /* [hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_Faces( 
            /* [in] */ VARIANT rhs) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPolyfaceMeshVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPolyfaceMesh * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPolyfaceMesh * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPolyfaceMesh * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPolyfaceMesh * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPolyfaceMesh * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPolyfaceMesh * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadPolyfaceMesh * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadPolyfaceMesh * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadPolyfaceMesh, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT Vertices);
        
        DECLSPEC_XFGVIRT(IGcadPolyfaceMesh, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ VARIANT *Vertices);
        
        DECLSPEC_XFGVIRT(IGcadPolyfaceMesh, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadPolyfaceMesh, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadPolyfaceMesh, get_NumberOfVertices)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfVertices )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ long *NumVertices);
        
        DECLSPEC_XFGVIRT(IGcadPolyfaceMesh, get_NumberOfFaces)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfFaces )( 
            IGcadPolyfaceMesh * This,
            /* [retval][out] */ long *NumFaces);
        
        DECLSPEC_XFGVIRT(IGcadPolyfaceMesh, put_Faces)
        /* [hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Faces )( 
            IGcadPolyfaceMesh * This,
            /* [in] */ VARIANT rhs);
        
        END_INTERFACE
    } IGcadPolyfaceMeshVtbl;

    interface IGcadPolyfaceMesh
    {
        CONST_VTBL struct IGcadPolyfaceMeshVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPolyfaceMesh_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPolyfaceMesh_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPolyfaceMesh_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPolyfaceMesh_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPolyfaceMesh_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPolyfaceMesh_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPolyfaceMesh_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPolyfaceMesh_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPolyfaceMesh_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPolyfaceMesh_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPolyfaceMesh_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPolyfaceMesh_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPolyfaceMesh_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPolyfaceMesh_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPolyfaceMesh_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPolyfaceMesh_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPolyfaceMesh_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPolyfaceMesh_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPolyfaceMesh_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPolyfaceMesh_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPolyfaceMesh_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadPolyfaceMesh_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadPolyfaceMesh_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadPolyfaceMesh_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadPolyfaceMesh_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadPolyfaceMesh_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadPolyfaceMesh_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadPolyfaceMesh_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadPolyfaceMesh_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadPolyfaceMesh_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadPolyfaceMesh_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadPolyfaceMesh_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadPolyfaceMesh_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadPolyfaceMesh_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadPolyfaceMesh_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadPolyfaceMesh_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadPolyfaceMesh_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadPolyfaceMesh_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadPolyfaceMesh_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadPolyfaceMesh_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadPolyfaceMesh_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadPolyfaceMesh_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadPolyfaceMesh_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadPolyfaceMesh_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadPolyfaceMesh_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadPolyfaceMesh_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadPolyfaceMesh_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadPolyfaceMesh_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadPolyfaceMesh_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadPolyfaceMesh_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadPolyfaceMesh_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadPolyfaceMesh_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadPolyfaceMesh_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadPolyfaceMesh_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadPolyfaceMesh_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadPolyfaceMesh_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadPolyfaceMesh_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadPolyfaceMesh_put_Coordinates(This,Vertices)	\
    ( (This)->lpVtbl -> put_Coordinates(This,Vertices) ) 

#define IGcadPolyfaceMesh_get_Coordinates(This,Vertices)	\
    ( (This)->lpVtbl -> get_Coordinates(This,Vertices) ) 

#define IGcadPolyfaceMesh_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcadPolyfaceMesh_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#define IGcadPolyfaceMesh_get_NumberOfVertices(This,NumVertices)	\
    ( (This)->lpVtbl -> get_NumberOfVertices(This,NumVertices) ) 

#define IGcadPolyfaceMesh_get_NumberOfFaces(This,NumFaces)	\
    ( (This)->lpVtbl -> get_NumberOfFaces(This,NumFaces) ) 

#define IGcadPolyfaceMesh_put_Faces(This,rhs)	\
    ( (This)->lpVtbl -> put_Faces(This,rhs) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPolyfaceMesh_INTERFACE_DEFINED__ */


#ifndef __IGcadMLine_INTERFACE_DEFINED__
#define __IGcadMLine_INTERFACE_DEFINED__

/* interface IGcadMLine */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadMLine;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0DA73585-0488-4699-BCD2-AB0F5C91D404")
    IGcadMLine : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleName( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *Vertices) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT Vertices) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Justification( 
            /* [retval][out] */ GcMLineJustification *Justification) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Justification( 
            /* [in] */ GcMLineJustification Justification) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MLineScale( 
            /* [retval][out] */ double *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MLineScale( 
            /* [in] */ double scale) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadMLineVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadMLine * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadMLine * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadMLine * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadMLine * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadMLine * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadMLine * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadMLine * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadMLine * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadMLine * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadMLine * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadMLine * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadMLine * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadMLine * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadMLine * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadMLine * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadMLine * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadMLine * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadMLine * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadMLine * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadMLine * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadMLine * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadMLine * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadMLine * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadMLine * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadMLine * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadMLine * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadMLine * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadMLine * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadMLine * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadMLine * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadMLine * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadMLine * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadMLine * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadMLine * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadMLine * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadMLine * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadMLine * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadMLine * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadMLine * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadMLine * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadMLine * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadMLine * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadMLine * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadMLine * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadMLine * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadMLine * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadMLine * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadMLine * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadMLine * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadMLine * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadMLine * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadMLine * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadMLine * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadMLine * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadMLine * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadMLine * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadMLine * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadMLine, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadMLine * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadMLine, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcadMLine * This,
            /* [retval][out] */ VARIANT *Vertices);
        
        DECLSPEC_XFGVIRT(IGcadMLine, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcadMLine * This,
            /* [in] */ VARIANT Vertices);
        
        DECLSPEC_XFGVIRT(IGcadMLine, get_Justification)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Justification )( 
            IGcadMLine * This,
            /* [retval][out] */ GcMLineJustification *Justification);
        
        DECLSPEC_XFGVIRT(IGcadMLine, put_Justification)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Justification )( 
            IGcadMLine * This,
            /* [in] */ GcMLineJustification Justification);
        
        DECLSPEC_XFGVIRT(IGcadMLine, get_MLineScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MLineScale )( 
            IGcadMLine * This,
            /* [retval][out] */ double *scale);
        
        DECLSPEC_XFGVIRT(IGcadMLine, put_MLineScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MLineScale )( 
            IGcadMLine * This,
            /* [in] */ double scale);
        
        END_INTERFACE
    } IGcadMLineVtbl;

    interface IGcadMLine
    {
        CONST_VTBL struct IGcadMLineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadMLine_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadMLine_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadMLine_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadMLine_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadMLine_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadMLine_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadMLine_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadMLine_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadMLine_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadMLine_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadMLine_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadMLine_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadMLine_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadMLine_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadMLine_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadMLine_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadMLine_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadMLine_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadMLine_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadMLine_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadMLine_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadMLine_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadMLine_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadMLine_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadMLine_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadMLine_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadMLine_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadMLine_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadMLine_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadMLine_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadMLine_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadMLine_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadMLine_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadMLine_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadMLine_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadMLine_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadMLine_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadMLine_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadMLine_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadMLine_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadMLine_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadMLine_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadMLine_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadMLine_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadMLine_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadMLine_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadMLine_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadMLine_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadMLine_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadMLine_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadMLine_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadMLine_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadMLine_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadMLine_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadMLine_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadMLine_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadMLine_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadMLine_get_StyleName(This,Name)	\
    ( (This)->lpVtbl -> get_StyleName(This,Name) ) 

#define IGcadMLine_get_Coordinates(This,Vertices)	\
    ( (This)->lpVtbl -> get_Coordinates(This,Vertices) ) 

#define IGcadMLine_put_Coordinates(This,Vertices)	\
    ( (This)->lpVtbl -> put_Coordinates(This,Vertices) ) 

#define IGcadMLine_get_Justification(This,Justification)	\
    ( (This)->lpVtbl -> get_Justification(This,Justification) ) 

#define IGcadMLine_put_Justification(This,Justification)	\
    ( (This)->lpVtbl -> put_Justification(This,Justification) ) 

#define IGcadMLine_get_MLineScale(This,scale)	\
    ( (This)->lpVtbl -> get_MLineScale(This,scale) ) 

#define IGcadMLine_put_MLineScale(This,scale)	\
    ( (This)->lpVtbl -> put_MLineScale(This,scale) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadMLine_INTERFACE_DEFINED__ */


#ifndef __IGcadDim3PointAngular_INTERFACE_DEFINED__
#define __IGcadDim3PointAngular_INTERFACE_DEFINED__

/* interface IGcadDim3PointAngular */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDim3PointAngular;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EA05C039-0D70-4713-865B-71DF0B02F6CA")
    IGcadDim3PointAngular : public IGcadDimension
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1EndPoint( 
            /* [retval][out] */ VARIANT *xLine1Point) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1EndPoint( 
            /* [in] */ VARIANT xLine1Point) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2EndPoint( 
            /* [retval][out] */ VARIANT *xLine2Point) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2EndPoint( 
            /* [in] */ VARIANT xLine2Point) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AngleVertex( 
            /* [retval][out] */ VARIANT *AngleVertex) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AngleVertex( 
            /* [in] */ VARIANT AngleVertex) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextPrecision( 
            /* [retval][out] */ GcDimPrecision *AngleVertex) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextPrecision( 
            /* [in] */ GcDimPrecision AngleVertex) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AngleFormat( 
            /* [retval][out] */ GcAngleUnits *format) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AngleFormat( 
            /* [in] */ GcAngleUnits format) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineExtend( 
            /* [retval][out] */ double *extend) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineExtend( 
            /* [in] */ double extend) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Fit( 
            /* [retval][out] */ GcDimFit *fittype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Fit( 
            /* [in] */ GcDimFit fittype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalTextPosition( 
            /* [retval][out] */ GcDimHorizontalJustification *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HorizontalTextPosition( 
            /* [in] */ GcDimHorizontalJustification Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *lweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT lweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine1Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine1Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine2Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine2Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForceLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForceLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextOutsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextOutsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineOffset( 
            /* [retval][out] */ double *Offset) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineOffset( 
            /* [in] */ double Offset) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *weight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT weight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Measurement( 
            /* [retval][out] */ GCAD_ANGLE *bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLenSuppress( 
            /* [retval][out] */ VARIANT_BOOL *bFixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLenSuppress( 
            /* [in] */ VARIANT_BOOL bFixedLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLen( 
            /* [retval][out] */ double *FixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLen( 
            /* [in] */ double FixedLen) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrForm( 
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic) = 0;
        
        virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrForm( 
            /* [in] */ VARIANT_BOOL bIsDynamic) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrReference( 
            /* [retval][out] */ VARIANT_BOOL *bIsReference) = 0;
        
        virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrReference( 
            /* [in] */ VARIANT_BOOL bIsReference) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrExpression( 
            /* [retval][out] */ BSTR *bstrExpression) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrExpression( 
            /* [in] */ BSTR bstrExpression) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrValue( 
            /* [retval][out] */ BSTR *Value) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrValue( 
            /* [in] */ BSTR Value) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimConstrDesc( 
            /* [retval][out] */ BSTR *bstrDescription) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimConstrDesc( 
            /* [in] */ BSTR bstrDescription) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDim3PointAngularVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDim3PointAngular * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDim3PointAngular * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDim3PointAngular * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDim3PointAngular * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDim3PointAngular * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDim3PointAngular * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDim3PointAngular * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDim3PointAngular * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDim3PointAngular * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadDim3PointAngular * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadDim3PointAngular * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadDim3PointAngular * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadDim3PointAngular * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadDim3PointAngular * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadDim3PointAngular * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPosition )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT *textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPosition )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRotation )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRotation )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextOverride)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOverride )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextOverride)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOverride )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DecimalSeparator)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DecimalSeparator )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DecimalSeparator)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DecimalSeparator )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGap )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGap )( 
            IGcadDim3PointAngular * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrefix )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrefix )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextSuffix )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextSuffix )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_VerticalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalTextPosition )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GcDimVerticalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_VerticalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalTextPosition )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GcDimVerticalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TolerancePrecision )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TolerancePrecision )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceHeightScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceHeightScale )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceHeightScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceHeightScale )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceLowerLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceLowerLimit )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ double *lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceLowerLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceLowerLimit )( 
            IGcadDim3PointAngular * This,
            /* [in] */ double lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextMovement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextMovement )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GcDimTextMovement *Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextMovement)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextMovement )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GcDimTextMovement Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceDisplay )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GcDimToleranceMethod *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceDisplay )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GcDimToleranceMethod method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceJustification)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceJustification )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GcDimToleranceJustify *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceJustification)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceJustification )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GcDimToleranceJustify method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceUpperLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceUpperLimit )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ double *upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceUpperLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceUpperLimit )( 
            IGcadDim3PointAngular * This,
            /* [in] */ double upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadDim3PointAngular * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressLeadingZeros )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressLeadingZeros )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressTrailingZeros )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressTrailingZeros )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressLeadingZeros )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressLeadingZeros )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressTrailingZeros )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressTrailingZeros )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFill )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFill )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFillColor )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFillColor )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DimTxtDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimTxtDirection )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *pbVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DimTxtDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimTxtDirection )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtLine1EndPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1EndPoint )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT *xLine1Point);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtLine1EndPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1EndPoint )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT xLine1Point);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtLine2EndPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2EndPoint )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT *xLine2Point);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtLine2EndPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2EndPoint )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT xLine2Point);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_AngleVertex)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AngleVertex )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT *AngleVertex);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_AngleVertex)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AngleVertex )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT AngleVertex);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_TextPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrecision )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GcDimPrecision *AngleVertex);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_TextPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrecision )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GcDimPrecision AngleVertex);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_AngleFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AngleFormat )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GcAngleUnits *format);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_AngleFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AngleFormat )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GcAngleUnits format);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineColor )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineColor )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineColor )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineColor )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtensionLineExtend)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineExtend )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ double *extend);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtensionLineExtend)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineExtend )( 
            IGcadDim3PointAngular * This,
            /* [in] */ double extend);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_Fit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fit )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GcDimFit *fittype);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_Fit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fit )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GcDimFit fittype);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_HorizontalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalTextPosition )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GcDimHorizontalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_HorizontalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HorizontalTextPosition )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GcDimHorizontalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineWeight )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_LWEIGHT *lweight);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineWeight )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_LWEIGHT lweight);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimLine1Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine1Suppress )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimLine1Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine1Suppress )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimLine2Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine2Suppress )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimLine2Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine2Suppress )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtLine1Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Suppress )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtLine1Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Suppress )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtLine2Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Suppress )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtLine2Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Suppress )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLineInside )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLineInside )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_TextInsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInsideAlign )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_TextInsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInsideAlign )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_TextInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInside )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_TextInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInside )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ForceLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForceLineInside )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ForceLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForceLineInside )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_TextOutsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOutsideAlign )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_TextOutsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOutsideAlign )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtensionLineOffset)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineOffset )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtensionLineOffset)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineOffset )( 
            IGcadDim3PointAngular * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineWeight )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_LWEIGHT *weight);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineWeight )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GCAD_LWEIGHT weight);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadDim3PointAngular * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_Arrowhead1Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Type )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_Arrowhead1Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Type )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_Arrowhead2Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Type )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_Arrowhead2Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Type )( 
            IGcadDim3PointAngular * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_Measurement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Measurement )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ GCAD_ANGLE *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_Arrowhead1Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Block )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_Arrowhead1Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Block )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_Arrowhead2Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Block )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_Arrowhead2Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Block )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimensionLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLinetype )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimensionLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLinetype )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtLine1Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Linetype )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtLine1Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Linetype )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtLine2Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Linetype )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtLine2Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Linetype )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtLineFixedLenSuppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLenSuppress )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtLineFixedLenSuppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLenSuppress )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_ExtLineFixedLen)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLen )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ double *FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_ExtLineFixedLen)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLen )( 
            IGcadDim3PointAngular * This,
            /* [in] */ double FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimConstrForm)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrForm )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimConstrForm)
        /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrForm )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bIsDynamic);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimConstrReference)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrReference )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ VARIANT_BOOL *bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimConstrReference)
        /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrReference )( 
            IGcadDim3PointAngular * This,
            /* [in] */ VARIANT_BOOL bIsReference);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimConstrName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrName )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimConstrName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrName )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimConstrExpression)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrExpression )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimConstrExpression)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrExpression )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR bstrExpression);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimConstrValue)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrValue )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *Value);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimConstrValue)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrValue )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR Value);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, get_DimConstrDesc)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimConstrDesc )( 
            IGcadDim3PointAngular * This,
            /* [retval][out] */ BSTR *bstrDescription);
        
        DECLSPEC_XFGVIRT(IGcadDim3PointAngular, put_DimConstrDesc)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimConstrDesc )( 
            IGcadDim3PointAngular * This,
            /* [in] */ BSTR bstrDescription);
        
        END_INTERFACE
    } IGcadDim3PointAngularVtbl;

    interface IGcadDim3PointAngular
    {
        CONST_VTBL struct IGcadDim3PointAngularVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDim3PointAngular_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDim3PointAngular_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDim3PointAngular_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDim3PointAngular_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDim3PointAngular_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDim3PointAngular_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDim3PointAngular_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDim3PointAngular_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDim3PointAngular_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDim3PointAngular_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDim3PointAngular_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDim3PointAngular_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDim3PointAngular_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDim3PointAngular_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDim3PointAngular_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDim3PointAngular_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDim3PointAngular_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDim3PointAngular_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDim3PointAngular_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDim3PointAngular_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDim3PointAngular_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadDim3PointAngular_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadDim3PointAngular_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadDim3PointAngular_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadDim3PointAngular_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadDim3PointAngular_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadDim3PointAngular_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadDim3PointAngular_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadDim3PointAngular_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadDim3PointAngular_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadDim3PointAngular_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadDim3PointAngular_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadDim3PointAngular_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadDim3PointAngular_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadDim3PointAngular_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadDim3PointAngular_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadDim3PointAngular_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadDim3PointAngular_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadDim3PointAngular_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadDim3PointAngular_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadDim3PointAngular_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadDim3PointAngular_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadDim3PointAngular_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadDim3PointAngular_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadDim3PointAngular_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadDim3PointAngular_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadDim3PointAngular_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadDim3PointAngular_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadDim3PointAngular_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadDim3PointAngular_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadDim3PointAngular_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadDim3PointAngular_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadDim3PointAngular_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadDim3PointAngular_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadDim3PointAngular_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadDim3PointAngular_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadDim3PointAngular_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadDim3PointAngular_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadDim3PointAngular_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadDim3PointAngular_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadDim3PointAngular_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadDim3PointAngular_get_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> get_TextPosition(This,textPos) ) 

#define IGcadDim3PointAngular_put_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> put_TextPosition(This,textPos) ) 

#define IGcadDim3PointAngular_get_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_TextRotation(This,rotAngle) ) 

#define IGcadDim3PointAngular_put_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_TextRotation(This,rotAngle) ) 

#define IGcadDim3PointAngular_get_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextOverride(This,bstrText) ) 

#define IGcadDim3PointAngular_put_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextOverride(This,bstrText) ) 

#define IGcadDim3PointAngular_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadDim3PointAngular_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadDim3PointAngular_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadDim3PointAngular_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadDim3PointAngular_get_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> get_DecimalSeparator(This,character) ) 

#define IGcadDim3PointAngular_put_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> put_DecimalSeparator(This,character) ) 

#define IGcadDim3PointAngular_get_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> get_TextGap(This,Offset) ) 

#define IGcadDim3PointAngular_put_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> put_TextGap(This,Offset) ) 

#define IGcadDim3PointAngular_get_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_TextPrefix(This,prefix) ) 

#define IGcadDim3PointAngular_put_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_TextPrefix(This,prefix) ) 

#define IGcadDim3PointAngular_get_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_TextSuffix(This,suffix) ) 

#define IGcadDim3PointAngular_put_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_TextSuffix(This,suffix) ) 

#define IGcadDim3PointAngular_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadDim3PointAngular_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadDim3PointAngular_get_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_VerticalTextPosition(This,Type) ) 

#define IGcadDim3PointAngular_put_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_VerticalTextPosition(This,Type) ) 

#define IGcadDim3PointAngular_get_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> get_TolerancePrecision(This,precision) ) 

#define IGcadDim3PointAngular_put_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> put_TolerancePrecision(This,precision) ) 

#define IGcadDim3PointAngular_get_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> get_ToleranceHeightScale(This,scale) ) 

#define IGcadDim3PointAngular_put_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> put_ToleranceHeightScale(This,scale) ) 

#define IGcadDim3PointAngular_get_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> get_ToleranceLowerLimit(This,lower) ) 

#define IGcadDim3PointAngular_put_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> put_ToleranceLowerLimit(This,lower) ) 

#define IGcadDim3PointAngular_get_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> get_TextMovement(This,Move) ) 

#define IGcadDim3PointAngular_put_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> put_TextMovement(This,Move) ) 

#define IGcadDim3PointAngular_get_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceDisplay(This,method) ) 

#define IGcadDim3PointAngular_put_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceDisplay(This,method) ) 

#define IGcadDim3PointAngular_get_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceJustification(This,method) ) 

#define IGcadDim3PointAngular_put_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceJustification(This,method) ) 

#define IGcadDim3PointAngular_get_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> get_ToleranceUpperLimit(This,upper) ) 

#define IGcadDim3PointAngular_put_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> put_ToleranceUpperLimit(This,upper) ) 

#define IGcadDim3PointAngular_get_TextStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextStyle(This,style) ) 

#define IGcadDim3PointAngular_put_TextStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextStyle(This,style) ) 

#define IGcadDim3PointAngular_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadDim3PointAngular_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadDim3PointAngular_get_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDim3PointAngular_put_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDim3PointAngular_get_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDim3PointAngular_put_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDim3PointAngular_get_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDim3PointAngular_put_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDim3PointAngular_get_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDim3PointAngular_put_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDim3PointAngular_get_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> get_TextFill(This,bVal) ) 

#define IGcadDim3PointAngular_put_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> put_TextFill(This,bVal) ) 

#define IGcadDim3PointAngular_get_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> get_TextFillColor(This,color) ) 

#define IGcadDim3PointAngular_put_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> put_TextFillColor(This,color) ) 

#define IGcadDim3PointAngular_get_DimTxtDirection(This,pbVal)	\
    ( (This)->lpVtbl -> get_DimTxtDirection(This,pbVal) ) 

#define IGcadDim3PointAngular_put_DimTxtDirection(This,bVal)	\
    ( (This)->lpVtbl -> put_DimTxtDirection(This,bVal) ) 


#define IGcadDim3PointAngular_get_ExtLine1EndPoint(This,xLine1Point)	\
    ( (This)->lpVtbl -> get_ExtLine1EndPoint(This,xLine1Point) ) 

#define IGcadDim3PointAngular_put_ExtLine1EndPoint(This,xLine1Point)	\
    ( (This)->lpVtbl -> put_ExtLine1EndPoint(This,xLine1Point) ) 

#define IGcadDim3PointAngular_get_ExtLine2EndPoint(This,xLine2Point)	\
    ( (This)->lpVtbl -> get_ExtLine2EndPoint(This,xLine2Point) ) 

#define IGcadDim3PointAngular_put_ExtLine2EndPoint(This,xLine2Point)	\
    ( (This)->lpVtbl -> put_ExtLine2EndPoint(This,xLine2Point) ) 

#define IGcadDim3PointAngular_get_AngleVertex(This,AngleVertex)	\
    ( (This)->lpVtbl -> get_AngleVertex(This,AngleVertex) ) 

#define IGcadDim3PointAngular_put_AngleVertex(This,AngleVertex)	\
    ( (This)->lpVtbl -> put_AngleVertex(This,AngleVertex) ) 

#define IGcadDim3PointAngular_get_TextPrecision(This,AngleVertex)	\
    ( (This)->lpVtbl -> get_TextPrecision(This,AngleVertex) ) 

#define IGcadDim3PointAngular_put_TextPrecision(This,AngleVertex)	\
    ( (This)->lpVtbl -> put_TextPrecision(This,AngleVertex) ) 

#define IGcadDim3PointAngular_get_AngleFormat(This,format)	\
    ( (This)->lpVtbl -> get_AngleFormat(This,format) ) 

#define IGcadDim3PointAngular_put_AngleFormat(This,format)	\
    ( (This)->lpVtbl -> put_AngleFormat(This,format) ) 

#define IGcadDim3PointAngular_get_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_DimensionLineColor(This,Type) ) 

#define IGcadDim3PointAngular_put_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_DimensionLineColor(This,Type) ) 

#define IGcadDim3PointAngular_get_ExtensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_ExtensionLineColor(This,Type) ) 

#define IGcadDim3PointAngular_put_ExtensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_ExtensionLineColor(This,Type) ) 

#define IGcadDim3PointAngular_get_ExtensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> get_ExtensionLineExtend(This,extend) ) 

#define IGcadDim3PointAngular_put_ExtensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> put_ExtensionLineExtend(This,extend) ) 

#define IGcadDim3PointAngular_get_Fit(This,fittype)	\
    ( (This)->lpVtbl -> get_Fit(This,fittype) ) 

#define IGcadDim3PointAngular_put_Fit(This,fittype)	\
    ( (This)->lpVtbl -> put_Fit(This,fittype) ) 

#define IGcadDim3PointAngular_get_HorizontalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_HorizontalTextPosition(This,Type) ) 

#define IGcadDim3PointAngular_put_HorizontalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_HorizontalTextPosition(This,Type) ) 

#define IGcadDim3PointAngular_get_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> get_ExtensionLineWeight(This,lweight) ) 

#define IGcadDim3PointAngular_put_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> put_ExtensionLineWeight(This,lweight) ) 

#define IGcadDim3PointAngular_get_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDim3PointAngular_put_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDim3PointAngular_get_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDim3PointAngular_put_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDim3PointAngular_get_ExtLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_ExtLine1Suppress(This,bSuppress) ) 

#define IGcadDim3PointAngular_put_ExtLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_ExtLine1Suppress(This,bSuppress) ) 

#define IGcadDim3PointAngular_get_ExtLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_ExtLine2Suppress(This,bSuppress) ) 

#define IGcadDim3PointAngular_put_ExtLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_ExtLine2Suppress(This,bSuppress) ) 

#define IGcadDim3PointAngular_get_DimLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_DimLineInside(This,bInside) ) 

#define IGcadDim3PointAngular_put_DimLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_DimLineInside(This,bInside) ) 

#define IGcadDim3PointAngular_get_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInsideAlign(This,bInside) ) 

#define IGcadDim3PointAngular_put_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInsideAlign(This,bInside) ) 

#define IGcadDim3PointAngular_get_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInside(This,bInside) ) 

#define IGcadDim3PointAngular_put_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInside(This,bInside) ) 

#define IGcadDim3PointAngular_get_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_ForceLineInside(This,bInside) ) 

#define IGcadDim3PointAngular_put_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_ForceLineInside(This,bInside) ) 

#define IGcadDim3PointAngular_get_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextOutsideAlign(This,bInside) ) 

#define IGcadDim3PointAngular_put_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextOutsideAlign(This,bInside) ) 

#define IGcadDim3PointAngular_get_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> get_ExtensionLineOffset(This,Offset) ) 

#define IGcadDim3PointAngular_put_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> put_ExtensionLineOffset(This,Offset) ) 

#define IGcadDim3PointAngular_get_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> get_DimensionLineWeight(This,weight) ) 

#define IGcadDim3PointAngular_put_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> put_DimensionLineWeight(This,weight) ) 

#define IGcadDim3PointAngular_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadDim3PointAngular_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadDim3PointAngular_get_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead1Type(This,Type) ) 

#define IGcadDim3PointAngular_put_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead1Type(This,Type) ) 

#define IGcadDim3PointAngular_get_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead2Type(This,Type) ) 

#define IGcadDim3PointAngular_put_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead2Type(This,Type) ) 

#define IGcadDim3PointAngular_get_Measurement(This,bVal)	\
    ( (This)->lpVtbl -> get_Measurement(This,bVal) ) 

#define IGcadDim3PointAngular_get_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead1Block(This,BlockName) ) 

#define IGcadDim3PointAngular_put_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead1Block(This,BlockName) ) 

#define IGcadDim3PointAngular_get_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead2Block(This,BlockName) ) 

#define IGcadDim3PointAngular_put_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead2Block(This,BlockName) ) 

#define IGcadDim3PointAngular_get_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_DimensionLinetype(This,Linetype) ) 

#define IGcadDim3PointAngular_put_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_DimensionLinetype(This,Linetype) ) 

#define IGcadDim3PointAngular_get_ExtLine1Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ExtLine1Linetype(This,Linetype) ) 

#define IGcadDim3PointAngular_put_ExtLine1Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ExtLine1Linetype(This,Linetype) ) 

#define IGcadDim3PointAngular_get_ExtLine2Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ExtLine2Linetype(This,Linetype) ) 

#define IGcadDim3PointAngular_put_ExtLine2Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ExtLine2Linetype(This,Linetype) ) 

#define IGcadDim3PointAngular_get_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDim3PointAngular_put_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDim3PointAngular_get_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDim3PointAngular_put_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDim3PointAngular_get_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> get_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDim3PointAngular_put_DimConstrForm(This,bIsDynamic)	\
    ( (This)->lpVtbl -> put_DimConstrForm(This,bIsDynamic) ) 

#define IGcadDim3PointAngular_get_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> get_DimConstrReference(This,bIsReference) ) 

#define IGcadDim3PointAngular_put_DimConstrReference(This,bIsReference)	\
    ( (This)->lpVtbl -> put_DimConstrReference(This,bIsReference) ) 

#define IGcadDim3PointAngular_get_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> get_DimConstrName(This,bstrName) ) 

#define IGcadDim3PointAngular_put_DimConstrName(This,bstrName)	\
    ( (This)->lpVtbl -> put_DimConstrName(This,bstrName) ) 

#define IGcadDim3PointAngular_get_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> get_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDim3PointAngular_put_DimConstrExpression(This,bstrExpression)	\
    ( (This)->lpVtbl -> put_DimConstrExpression(This,bstrExpression) ) 

#define IGcadDim3PointAngular_get_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> get_DimConstrValue(This,Value) ) 

#define IGcadDim3PointAngular_put_DimConstrValue(This,Value)	\
    ( (This)->lpVtbl -> put_DimConstrValue(This,Value) ) 

#define IGcadDim3PointAngular_get_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> get_DimConstrDesc(This,bstrDescription) ) 

#define IGcadDim3PointAngular_put_DimConstrDesc(This,bstrDescription)	\
    ( (This)->lpVtbl -> put_DimConstrDesc(This,bstrDescription) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ExtensionLineColor_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ GCAD_COLOR Type);


void __RPC_STUB IGcadDim3PointAngular_put_ExtensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_ExtensionLineExtend_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ double *extend);


void __RPC_STUB IGcadDim3PointAngular_get_ExtensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ExtensionLineExtend_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ double extend);


void __RPC_STUB IGcadDim3PointAngular_put_ExtensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_Fit_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ GcDimFit *fittype);


void __RPC_STUB IGcadDim3PointAngular_get_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_Fit_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ GcDimFit fittype);


void __RPC_STUB IGcadDim3PointAngular_put_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_HorizontalTextPosition_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ GcDimHorizontalJustification *Type);


void __RPC_STUB IGcadDim3PointAngular_get_HorizontalTextPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_HorizontalTextPosition_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ GcDimHorizontalJustification Type);


void __RPC_STUB IGcadDim3PointAngular_put_HorizontalTextPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_ExtensionLineWeight_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ GCAD_LWEIGHT *lweight);


void __RPC_STUB IGcadDim3PointAngular_get_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ExtensionLineWeight_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ GCAD_LWEIGHT lweight);


void __RPC_STUB IGcadDim3PointAngular_put_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_DimLine1Suppress_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDim3PointAngular_get_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_DimLine1Suppress_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDim3PointAngular_put_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_DimLine2Suppress_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDim3PointAngular_get_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_DimLine2Suppress_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDim3PointAngular_put_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_ExtLine1Suppress_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDim3PointAngular_get_ExtLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ExtLine1Suppress_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDim3PointAngular_put_ExtLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_ExtLine2Suppress_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDim3PointAngular_get_ExtLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ExtLine2Suppress_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDim3PointAngular_put_ExtLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_DimLineInside_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDim3PointAngular_get_DimLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_DimLineInside_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDim3PointAngular_put_DimLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_TextInsideAlign_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDim3PointAngular_get_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_TextInsideAlign_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDim3PointAngular_put_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_TextInside_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDim3PointAngular_get_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_TextInside_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDim3PointAngular_put_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_ForceLineInside_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDim3PointAngular_get_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ForceLineInside_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDim3PointAngular_put_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_TextOutsideAlign_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDim3PointAngular_get_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_TextOutsideAlign_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDim3PointAngular_put_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_ExtensionLineOffset_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ double *Offset);


void __RPC_STUB IGcadDim3PointAngular_get_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ExtensionLineOffset_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ double Offset);


void __RPC_STUB IGcadDim3PointAngular_put_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_DimensionLineWeight_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ GCAD_LWEIGHT *weight);


void __RPC_STUB IGcadDim3PointAngular_get_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_DimensionLineWeight_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ GCAD_LWEIGHT weight);


void __RPC_STUB IGcadDim3PointAngular_put_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_ArrowheadSize_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ double *size);


void __RPC_STUB IGcadDim3PointAngular_get_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ArrowheadSize_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ double size);


void __RPC_STUB IGcadDim3PointAngular_put_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_Arrowhead1Type_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDim3PointAngular_get_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_Arrowhead1Type_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDim3PointAngular_put_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_Arrowhead2Type_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDim3PointAngular_get_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_Arrowhead2Type_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDim3PointAngular_put_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_Measurement_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ GCAD_ANGLE *bVal);


void __RPC_STUB IGcadDim3PointAngular_get_Measurement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_Arrowhead1Block_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDim3PointAngular_get_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_Arrowhead1Block_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDim3PointAngular_put_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_Arrowhead2Block_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDim3PointAngular_get_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_Arrowhead2Block_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDim3PointAngular_put_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_DimensionLinetype_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDim3PointAngular_get_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_DimensionLinetype_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDim3PointAngular_put_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_ExtLine1Linetype_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDim3PointAngular_get_ExtLine1Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ExtLine1Linetype_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDim3PointAngular_put_ExtLine1Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_ExtLine2Linetype_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDim3PointAngular_get_ExtLine2Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ExtLine2Linetype_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDim3PointAngular_put_ExtLine2Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_ExtLineFixedLenSuppress_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bFixedLen);


void __RPC_STUB IGcadDim3PointAngular_get_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ExtLineFixedLenSuppress_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bFixedLen);


void __RPC_STUB IGcadDim3PointAngular_put_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_ExtLineFixedLen_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ double *FixedLen);


void __RPC_STUB IGcadDim3PointAngular_get_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_ExtLineFixedLen_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ double FixedLen);


void __RPC_STUB IGcadDim3PointAngular_put_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_DimConstrForm_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bIsDynamic);


void __RPC_STUB IGcadDim3PointAngular_get_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_DimConstrForm_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bIsDynamic);


void __RPC_STUB IGcadDim3PointAngular_put_DimConstrForm_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_DimConstrReference_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ VARIANT_BOOL *bIsReference);


void __RPC_STUB IGcadDim3PointAngular_get_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_DimConstrReference_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ VARIANT_BOOL bIsReference);


void __RPC_STUB IGcadDim3PointAngular_put_DimConstrReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_DimConstrName_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ BSTR *bstrName);


void __RPC_STUB IGcadDim3PointAngular_get_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_DimConstrName_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ BSTR bstrName);


void __RPC_STUB IGcadDim3PointAngular_put_DimConstrName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_DimConstrExpression_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ BSTR *bstrExpression);


void __RPC_STUB IGcadDim3PointAngular_get_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_DimConstrExpression_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ BSTR bstrExpression);


void __RPC_STUB IGcadDim3PointAngular_put_DimConstrExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_DimConstrValue_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ BSTR *Value);


void __RPC_STUB IGcadDim3PointAngular_get_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_DimConstrValue_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ BSTR Value);


void __RPC_STUB IGcadDim3PointAngular_put_DimConstrValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_get_DimConstrDesc_Proxy( 
    IGcadDim3PointAngular * This,
    /* [retval][out] */ BSTR *bstrDescription);


void __RPC_STUB IGcadDim3PointAngular_get_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDim3PointAngular_put_DimConstrDesc_Proxy( 
    IGcadDim3PointAngular * This,
    /* [in] */ BSTR bstrDescription);


void __RPC_STUB IGcadDim3PointAngular_put_DimConstrDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGcadDim3PointAngular_INTERFACE_DEFINED__ */


#ifndef __IGcadExternalReference_INTERFACE_DEFINED__
#define __IGcadExternalReference_INTERFACE_DEFINED__

/* interface IGcadExternalReference */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadExternalReference;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("29EB1F45-3E5E-41E2-B909-2EA909858B11")
    IGcadExternalReference : public IGcadBlockReference
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Path( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Path( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LayerPropertyOverrides( 
            /* [retval][out] */ VARIANT_BOOL *bOverrides) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadExternalReferenceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadExternalReference * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadExternalReference * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadExternalReference * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadExternalReference * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadExternalReference * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadExternalReference * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadExternalReference * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadExternalReference * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadExternalReference * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadExternalReference * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadExternalReference * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadExternalReference * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadExternalReference * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadExternalReference * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadExternalReference * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadExternalReference * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadExternalReference * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadExternalReference * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadExternalReference * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadExternalReference * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadExternalReference * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadExternalReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadExternalReference * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadExternalReference * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadExternalReference * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadExternalReference * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadExternalReference * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadExternalReference * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadExternalReference * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadExternalReference * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadExternalReference * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadExternalReference * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadExternalReference * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadExternalReference * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadExternalReference * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadExternalReference * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadExternalReference * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadExternalReference * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadExternalReference * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadExternalReference * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadExternalReference * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadExternalReference * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadExternalReference * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadExternalReference * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadExternalReference * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_XScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XScaleFactor )( 
            IGcadExternalReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_XScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XScaleFactor )( 
            IGcadExternalReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_YScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_YScaleFactor )( 
            IGcadExternalReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_YScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_YScaleFactor )( 
            IGcadExternalReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_ZScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ZScaleFactor )( 
            IGcadExternalReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_ZScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ZScaleFactor )( 
            IGcadExternalReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, Explode)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Explode )( 
            IGcadExternalReference * This,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetAttributes)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAttributes )( 
            IGcadExternalReference * This,
            /* [retval][out] */ VARIANT *pAttrObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetConstantAttributes)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConstantAttributes )( 
            IGcadExternalReference * This,
            /* [retval][out] */ VARIANT *pAttrObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_HasAttributes)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasAttributes )( 
            IGcadExternalReference * This,
            /* [retval][out] */ VARIANT_BOOL *bHas);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_EffectiveName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EffectiveName )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *EffectiveName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_IsDynamicBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsDynamicBlock )( 
            IGcadExternalReference * This,
            /* [retval][out] */ VARIANT_BOOL *pDynamicBlock);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetDynamicBlockProperties)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDynamicBlockProperties )( 
            IGcadExternalReference * This,
            /* [retval][out] */ VARIANT *dynamicPropertyArray);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ResetBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ResetBlock )( 
            IGcadExternalReference * This);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ConvertToAnonymousBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConvertToAnonymousBlock )( 
            IGcadExternalReference * This);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ConvertToStaticBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConvertToStaticBlock )( 
            IGcadExternalReference * This,
            /* [in] */ BSTR newBlockName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_XEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XEffectiveScaleFactor )( 
            IGcadExternalReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_XEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XEffectiveScaleFactor )( 
            IGcadExternalReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_YEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_YEffectiveScaleFactor )( 
            IGcadExternalReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_YEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_YEffectiveScaleFactor )( 
            IGcadExternalReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_ZEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ZEffectiveScaleFactor )( 
            IGcadExternalReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_ZEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ZEffectiveScaleFactor )( 
            IGcadExternalReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsUnits )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *Units);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsUnitsFactor )( 
            IGcadExternalReference * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadExternalReference, get_Path)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            IGcadExternalReference * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadExternalReference, put_Path)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Path )( 
            IGcadExternalReference * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadExternalReference, get_LayerPropertyOverrides)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LayerPropertyOverrides )( 
            IGcadExternalReference * This,
            /* [retval][out] */ VARIANT_BOOL *bOverrides);
        
        END_INTERFACE
    } IGcadExternalReferenceVtbl;

    interface IGcadExternalReference
    {
        CONST_VTBL struct IGcadExternalReferenceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadExternalReference_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadExternalReference_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadExternalReference_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadExternalReference_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadExternalReference_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadExternalReference_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadExternalReference_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadExternalReference_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadExternalReference_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadExternalReference_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadExternalReference_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadExternalReference_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadExternalReference_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadExternalReference_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadExternalReference_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadExternalReference_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadExternalReference_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadExternalReference_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadExternalReference_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadExternalReference_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadExternalReference_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadExternalReference_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadExternalReference_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadExternalReference_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadExternalReference_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadExternalReference_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadExternalReference_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadExternalReference_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadExternalReference_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadExternalReference_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadExternalReference_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadExternalReference_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadExternalReference_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadExternalReference_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadExternalReference_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadExternalReference_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadExternalReference_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadExternalReference_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadExternalReference_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadExternalReference_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadExternalReference_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadExternalReference_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadExternalReference_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadExternalReference_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadExternalReference_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadExternalReference_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadExternalReference_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadExternalReference_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadExternalReference_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadExternalReference_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadExternalReference_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadExternalReference_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadExternalReference_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadExternalReference_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadExternalReference_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadExternalReference_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadExternalReference_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadExternalReference_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadExternalReference_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadExternalReference_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadExternalReference_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadExternalReference_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadExternalReference_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadExternalReference_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadExternalReference_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadExternalReference_get_XScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_XScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_put_XScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_XScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_get_YScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_YScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_put_YScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_YScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_get_ZScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ZScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_put_ZScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ZScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_Explode(This,pArrayObjs)	\
    ( (This)->lpVtbl -> Explode(This,pArrayObjs) ) 

#define IGcadExternalReference_GetAttributes(This,pAttrObjs)	\
    ( (This)->lpVtbl -> GetAttributes(This,pAttrObjs) ) 

#define IGcadExternalReference_GetConstantAttributes(This,pAttrObjs)	\
    ( (This)->lpVtbl -> GetConstantAttributes(This,pAttrObjs) ) 

#define IGcadExternalReference_get_HasAttributes(This,bHas)	\
    ( (This)->lpVtbl -> get_HasAttributes(This,bHas) ) 

#define IGcadExternalReference_get_EffectiveName(This,EffectiveName)	\
    ( (This)->lpVtbl -> get_EffectiveName(This,EffectiveName) ) 

#define IGcadExternalReference_get_IsDynamicBlock(This,pDynamicBlock)	\
    ( (This)->lpVtbl -> get_IsDynamicBlock(This,pDynamicBlock) ) 

#define IGcadExternalReference_GetDynamicBlockProperties(This,dynamicPropertyArray)	\
    ( (This)->lpVtbl -> GetDynamicBlockProperties(This,dynamicPropertyArray) ) 

#define IGcadExternalReference_ResetBlock(This)	\
    ( (This)->lpVtbl -> ResetBlock(This) ) 

#define IGcadExternalReference_ConvertToAnonymousBlock(This)	\
    ( (This)->lpVtbl -> ConvertToAnonymousBlock(This) ) 

#define IGcadExternalReference_ConvertToStaticBlock(This,newBlockName)	\
    ( (This)->lpVtbl -> ConvertToStaticBlock(This,newBlockName) ) 

#define IGcadExternalReference_get_XEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_XEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_put_XEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_XEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_get_YEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_YEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_put_YEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_YEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_get_ZEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ZEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_put_ZEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ZEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadExternalReference_get_InsUnits(This,Units)	\
    ( (This)->lpVtbl -> get_InsUnits(This,Units) ) 

#define IGcadExternalReference_get_InsUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_InsUnitsFactor(This,factor) ) 


#define IGcadExternalReference_get_Path(This,bstrName)	\
    ( (This)->lpVtbl -> get_Path(This,bstrName) ) 

#define IGcadExternalReference_put_Path(This,bstrName)	\
    ( (This)->lpVtbl -> put_Path(This,bstrName) ) 

#define IGcadExternalReference_get_LayerPropertyOverrides(This,bOverrides)	\
    ( (This)->lpVtbl -> get_LayerPropertyOverrides(This,bOverrides) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadExternalReference_INTERFACE_DEFINED__ */


#ifndef __IGcadTable_INTERFACE_DEFINED__
#define __IGcadTable_INTERFACE_DEFINED__

/* interface IGcadTable */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadTable;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("449C1C61-4BD2-445C-BA5E-ED97DF538B9D")
    IGcadTable : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StyleName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rows( 
            /* [retval][out] */ int *pRows) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rows( 
            /* [in] */ int pRows) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Columns( 
            /* [retval][out] */ int *pColumns) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Columns( 
            /* [in] */ int pColumns) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FlowDirection( 
            /* [retval][out] */ GcTableDirection *pFlow) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FlowDirection( 
            /* [in] */ GcTableDirection pFlow) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ double *pWidth) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Width( 
            /* [in] */ double pWidth) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *pHeight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double pHeight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VertCellMargin( 
            /* [retval][out] */ double *pGap) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_VertCellMargin( 
            /* [in] */ double pGap) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HorzCellMargin( 
            /* [retval][out] */ double *pGap) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HorzCellMargin( 
            /* [in] */ double pGap) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsertionPoint( 
            /* [retval][out] */ VARIANT *insPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_InsertionPoint( 
            /* [in] */ VARIANT insPoint) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetColumnWidth( 
            /* [in] */ int col,
            /* [retval][out] */ double *pWidth) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetColumnWidth( 
            /* [in] */ int col,
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ColumnWidth( 
            /* [in] */ double rhs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetRowHeight( 
            /* [in] */ int row,
            /* [retval][out] */ double *pHeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetRowHeight( 
            /* [in] */ int row,
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RowHeight( 
            /* [in] */ double rhs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMinimumColumnWidth( 
            /* [in] */ int col,
            /* [retval][out] */ double *pWidth) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMinimumRowHeight( 
            /* [in] */ int row,
            /* [retval][out] */ double *pHeight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MinimumTableWidth( 
            /* [retval][out] */ double *pWidth) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MinimumTableHeight( 
            /* [retval][out] */ double *pHeight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Direction( 
            /* [retval][out] */ VARIANT *DirectionVector) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Direction( 
            /* [in] */ VARIANT DirectionVector) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TitleSuppressed( 
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TitleSuppressed( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HeaderSuppressed( 
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HeaderSuppressed( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAlignment( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ GcCellAlignment *pCellAlignment) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAlignment( 
            /* [in] */ int rowTypes,
            /* [in] */ GcCellAlignment cellAlignment) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBackgroundColorNone( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBackgroundColorNone( 
            /* [in] */ int rowTypes,
            /* [in] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBackgroundColor( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBackgroundColor( 
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetContentColor( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetContentColor( 
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTextStyle( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTextStyle( 
            /* [in] */ int rowTypes,
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTextHeight( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ double *pTextHeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTextHeight( 
            /* [in] */ int rowTypes,
            /* [in] */ double TextHeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridLineWeight( 
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridLineWeight( 
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridColor( 
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridColor( 
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridVisibility( 
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridVisibility( 
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TableStyleOverrides( 
            /* [retval][out] */ VARIANT *pIntArray) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClearTableStyleOverrides( 
            /* [in] */ int flag) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellType( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ GcCellType *pCellType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellType( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellType CellType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellExtents( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ VARIANT_BOOL bOuterCell,
            /* [retval][out] */ VARIANT *pPts) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAttachmentPoint( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ VARIANT *pAttachmentPoint) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellAlignment( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ GcCellAlignment *pCellAlignment) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellAlignment( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellAlignment cellAlignment) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellBackgroundColorNone( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellBackgroundColorNone( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellBackgroundColor( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellBackgroundColor( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellContentColor( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellContentColor( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellStyleOverrides( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ VARIANT *pIntArray) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteCellContent( 
            /* [in] */ int row,
            /* [in] */ int col) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetRowType( 
            /* [in] */ int row,
            /* [retval][out] */ GcRowType *pRowType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetText( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ BSTR *pStr) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetText( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ BSTR pStr) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellTextStyle( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellTextStyle( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellTextHeight( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ double *pTextHeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellTextHeight( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ double TextHeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTextRotation( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ GcRotationAngle *TextRotation) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTextRotation( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcRotationAngle TextRotation) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAutoScale( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAutoScale( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBlockTableRecordId( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ LONG_PTR *blkId) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBlockTableRecordId( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ LONG_PTR blkId,
            /* [in] */ VARIANT_BOOL bAutoFit) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBlockScale( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ double *blkScale) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBlockScale( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ double blkScale) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBlockRotation( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ double *blkRotation) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBlockRotation( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ double blkRotation) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBlockAttributeValue( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ LONG_PTR attdefId,
            /* [retval][out] */ BSTR *bstrValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBlockAttributeValue( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ LONG_PTR attdefId,
            /* [in] */ BSTR bstrValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellGridLineWeight( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellEdgeMask edge,
            /* [retval][out] */ GCAD_LWEIGHT *plineweight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellGridLineWeight( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ int edges,
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellGridColor( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellEdgeMask edge,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellGridColor( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ int edges,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellGridVisibility( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellEdgeMask edge,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellGridVisibility( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ int edges,
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InsertColumns( 
            /* [in] */ int col,
            /* [in] */ double Width,
            /* [in] */ int cols) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteColumns( 
            /* [in] */ int col,
            /* [in] */ int cols) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InsertRows( 
            /* [in] */ int row,
            /* [in] */ double Height,
            /* [in] */ int Rows) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteRows( 
            /* [in] */ int row,
            /* [in] */ int Rows) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MergeCells( 
            /* [in] */ int minRow,
            /* [in] */ int maxRow,
            /* [in] */ int minCol,
            /* [in] */ int maxCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnmergeCells( 
            /* [in] */ int minRow,
            /* [in] */ int maxRow,
            /* [in] */ int minCol,
            /* [in] */ int maxCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsMergedCell( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [out] */ int *minRow,
            /* [out] */ int *maxRow,
            /* [out] */ int *minCol,
            /* [out] */ int *maxCol,
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFieldId( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ LONG_PTR *fieldId) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetFieldId( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ LONG_PTR fieldId) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GenerateLayout( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RecomputeTableBlock( 
            /* [in] */ VARIANT_BOOL bForceUpdate) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HitTest( 
            /* [in] */ VARIANT wpt,
            /* [in] */ VARIANT wviewVec,
            /* [out] */ int *resultRowIndex,
            /* [out] */ int *resultColumnIndex,
            /* [retval][out] */ VARIANT_BOOL *bReturn) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Select( 
            /* [in] */ VARIANT wpt,
            /* [in] */ VARIANT wvwVec,
            /* [in] */ VARIANT wvwxVec,
            /* [in] */ double wxaper,
            /* [in] */ double wyaper,
            /* [in] */ VARIANT_BOOL allowOutside,
            /* [out] */ int *resultRowIndex,
            /* [out] */ int *resultColumnIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SelectSubRegion( 
            /* [in] */ VARIANT wpt1,
            /* [in] */ VARIANT wpt2,
            /* [in] */ VARIANT wvwVec,
            /* [in] */ VARIANT wvwxVec,
            /* [in] */ GcSelectType seltype,
            /* [in] */ VARIANT_BOOL bIncludeCurrentSelection,
            /* [out] */ int *rowMin,
            /* [out] */ int *rowMax,
            /* [out] */ int *colMin,
            /* [out] */ int *colMax) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ReselectSubRegion( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSubSelection( 
            /* [out] */ int *rowMin,
            /* [out] */ int *rowMax,
            /* [out] */ int *colMin,
            /* [out] */ int *colMax) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSubSelection( 
            /* [in] */ int rowMin,
            /* [in] */ int rowMax,
            /* [in] */ int colMin,
            /* [in] */ int colMax) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClearSubSelection( void) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HasSubSelection( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RegenerateTableSuppressed( 
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RegenerateTableSuppressed( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDataType( 
            /* [in] */ GcRowType rowType,
            /* [out] */ GcValueDataType *pDataType,
            /* [out] */ GcValueUnitType *pUnitType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetDataType( 
            /* [in] */ int rowTypes,
            /* [in] */ GcValueDataType dataType,
            /* [in] */ GcValueUnitType unitType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFormat( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ BSTR *pFormat) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetFormat( 
            /* [in] */ int rowTypes,
            BSTR pFormat) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FormatValue( 
            /* [in] */ int row,
            /* [in] */ int col,
            GcFormatOption nOption,
            BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellDataType( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [out] */ GcValueDataType *pDataType,
            /* [out] */ GcValueUnitType *pUnitType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellDataType( 
            /* [in] */ int row,
            /* [in] */ int col,
            GcValueDataType dataType,
            GcValueUnitType unitType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellFormat( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ BSTR *pFormat) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellFormat( 
            /* [in] */ int row,
            /* [in] */ int col,
            BSTR pFormat) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellValue( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellValue( 
            /* [in] */ int row,
            /* [in] */ int col,
            VARIANT val) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellValueFromText( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ BSTR val,
            /* [in] */ GcParseOption nOption) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ResetCellValue( 
            /* [in] */ int row,
            /* [in] */ int col) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsEmpty( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateContent( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nIndex,
            /* [retval][out] */ int *pInt) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MoveContent( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nFromIndex,
            /* [in] */ int nToIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteContent( 
            /* [in] */ int nRow,
            /* [in] */ int nCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetValue( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ VARIANT *pAcValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetValue( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ VARIANT acValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetValueFromText( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ BSTR szText,
            /* [in] */ GcParseOption nOption) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDataFormat( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ BSTR *pValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetDataFormat( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ BSTR szFormat) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTextString( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ BSTR *pTextString) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTextString( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ BSTR Text) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCustomData( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ BSTR szKey,
            /* [out] */ VARIANT *pData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCustomData( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ BSTR szKey,
            /* [in] */ VARIANT data) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellStyle( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ BSTR *pCellStyle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellStyle( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ BSTR szCellStyle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetContentColor2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetContentColor2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDataType2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [out] */ GcValueDataType *pDataType,
            /* [out] */ GcValueUnitType *pUnitType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetDataType2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ GcValueDataType dataType,
            /* [in] */ GcValueUnitType unitType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTextStyle2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ BSTR *pbstrStyleName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTextStyle2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ BSTR bstrStyleName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTextHeight2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ double *pHeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTextHeight2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetRotation( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ double *pValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetRotation( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ double Value) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAutoScale2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ VARIANT_BOOL *bAutoScale) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAutoScale2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ VARIANT_BOOL bAutoFit) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetScale( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ double *pScale) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetScale( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ double scale) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveAllOverrides( 
            /* [in] */ int nRow,
            /* [in] */ int nCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridLineWeight2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [retval][out] */ GCAD_LWEIGHT *plineweight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridLineWeight2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridColor2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridColor2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridVisibility2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [retval][out] */ VARIANT_BOOL *bVisible) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridVisibility2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [in] */ VARIANT_BOOL bVisible) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridDoubleLineSpacing( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [retval][out] */ double *pValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridDoubleLineSpacing( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [in] */ double fSpacing) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableBreak( 
            /* [in] */ VARIANT_BOOL rhs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBreakHeight( 
            /* [in] */ int nIndex,
            /* [retval][out] */ double *pHeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBreakHeight( 
            /* [in] */ int nIndex,
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetContentType( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ GcCellContentType *pType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMargin( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcCellMargin nMargin,
            /* [retval][out] */ double *pValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetMargin( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcCellMargin nMargins,
            /* [in] */ double fMargin) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetContentLayout( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ GcCellContentLayout *pLayout) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetContentLayout( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellContentLayout nLayout) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetOverride( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ GcCellProperty *pValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetOverride( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ GcCellProperty nProp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridLineStyle( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [retval][out] */ GcGridLineStyle *pStyle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridLineStyle( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineTypes,
            /* [in] */ GcGridLineStyle nLineStyle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InsertRowsAndInherit( 
            /* [in] */ int nIndex,
            /* [in] */ int nInheritFrom,
            /* [in] */ int nNumRows) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InsertColumnsAndInherit( 
            /* [in] */ int col,
            /* [in] */ int nInheritFrom,
            /* [in] */ int nNumCols) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetHasFormula( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFormula( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ BSTR *pszFormula) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetFormula( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ BSTR pszFormula) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsContentEditable( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsFormatEditable( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCellState( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcCellState nState) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCellState( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ GcCellState *nState) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EnableMergeAll( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ VARIANT_BOOL bEnable) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsMergeAllEnabled( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetColumnName( 
            /* [in] */ int nIndex,
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetColumnName( 
            /* [in] */ int nIndex,
            /* [in] */ BSTR Name) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetToolTip( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ BSTR tip) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetBlockAttributeValue2( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ int nContent,
            /* [in] */ LONG_PTR attdefId,
            /* [retval][out] */ BSTR *bstrValue) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetBlockAttributeValue2( 
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ int nContent,
            /* [in] */ LONG_PTR attdefId,
            /* [in] */ BSTR bstrValue) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetFieldId2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ LONG_PTR *pAcDbObjectId) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetFieldId2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ LONG_PTR acDbObjectId,
            /* [in] */ GcCellOption nflag) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetBlockTableRecordId2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ LONG_PTR *pAcDbObjectId) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetBlockTableRecordId2( 
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ LONG_PTR blkId,
            /* [in] */ VARIANT_BOOL autoFit) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BreaksEnabled( 
            /* [retval][out] */ VARIANT_BOOL *bEnabled) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BreaksEnabled( 
            /* [in] */ VARIANT_BOOL bEnabled) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RepeatTopLabels( 
            /* [retval][out] */ VARIANT_BOOL *bEnabled) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RepeatTopLabels( 
            /* [in] */ VARIANT_BOOL bEnabled) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RepeatBottomLabels( 
            /* [retval][out] */ VARIANT_BOOL *bEnabled) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RepeatBottomLabels( 
            /* [in] */ VARIANT_BOOL bEnabled) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TableBreakFlowDirection( 
            /* [retval][out] */ GcTableFlowDirection *pDir) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TableBreakFlowDirection( 
            /* [in] */ GcTableFlowDirection pDir) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowManualPositions( 
            /* [retval][out] */ VARIANT_BOOL *bEnabled) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowManualPositions( 
            /* [in] */ VARIANT_BOOL bEnabled) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowManualHeights( 
            /* [retval][out] */ VARIANT_BOOL *bEnabled) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowManualHeights( 
            /* [in] */ VARIANT_BOOL bEnabled) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TableBreakHeight( 
            /* [retval][out] */ double *pHeight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TableBreakHeight( 
            /* [in] */ double pHeight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BreakSpacing( 
            /* [retval][out] */ double *pSpacing) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BreakSpacing( 
            /* [in] */ double pSpacing) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadTableVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadTable * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadTable * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadTable * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadTable * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadTable * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadTable * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadTable * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadTable * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadTable * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadTable * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadTable * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadTable * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadTable * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadTable * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadTable * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadTable * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadTable * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadTable * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadTable * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadTable * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadTable * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadTable * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadTable * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadTable * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadTable * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadTable * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadTable * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadTable * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadTable * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadTable * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadTable * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadTable * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadTable * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadTable * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadTable * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadTable * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadTable * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadTable * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadTable * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadTable * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadTable * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadTable * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadTable * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadTable * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadTable * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadTable * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadTable * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadTable * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadTable * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadTable * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadTable * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadTable * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadTable * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadTable * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadTable * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_Rows)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rows )( 
            IGcadTable * This,
            /* [retval][out] */ int *pRows);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_Rows)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rows )( 
            IGcadTable * This,
            /* [in] */ int pRows);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_Columns)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Columns )( 
            IGcadTable * This,
            /* [retval][out] */ int *pColumns);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_Columns)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Columns )( 
            IGcadTable * This,
            /* [in] */ int pColumns);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_FlowDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FlowDirection )( 
            IGcadTable * This,
            /* [retval][out] */ GcTableDirection *pFlow);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_FlowDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FlowDirection )( 
            IGcadTable * This,
            /* [in] */ GcTableDirection pFlow);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadTable * This,
            /* [retval][out] */ double *pWidth);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_Width)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( 
            IGcadTable * This,
            /* [in] */ double pWidth);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadTable * This,
            /* [retval][out] */ double *pHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadTable * This,
            /* [in] */ double pHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_VertCellMargin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VertCellMargin )( 
            IGcadTable * This,
            /* [retval][out] */ double *pGap);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_VertCellMargin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VertCellMargin )( 
            IGcadTable * This,
            /* [in] */ double pGap);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_HorzCellMargin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorzCellMargin )( 
            IGcadTable * This,
            /* [retval][out] */ double *pGap);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_HorzCellMargin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HorzCellMargin )( 
            IGcadTable * This,
            /* [in] */ double pGap);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadTable * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetColumnWidth)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetColumnWidth )( 
            IGcadTable * This,
            /* [in] */ int col,
            /* [retval][out] */ double *pWidth);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetColumnWidth)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetColumnWidth )( 
            IGcadTable * This,
            /* [in] */ int col,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_ColumnWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColumnWidth )( 
            IGcadTable * This,
            /* [in] */ double rhs);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetRowHeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetRowHeight )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [retval][out] */ double *pHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetRowHeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetRowHeight )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_RowHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RowHeight )( 
            IGcadTable * This,
            /* [in] */ double rhs);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetMinimumColumnWidth)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMinimumColumnWidth )( 
            IGcadTable * This,
            /* [in] */ int col,
            /* [retval][out] */ double *pWidth);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetMinimumRowHeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMinimumRowHeight )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [retval][out] */ double *pHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_MinimumTableWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinimumTableWidth )( 
            IGcadTable * This,
            /* [retval][out] */ double *pWidth);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_MinimumTableHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinimumTableHeight )( 
            IGcadTable * This,
            /* [retval][out] */ double *pHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_Direction)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Direction )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT *DirectionVector);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_Direction)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Direction )( 
            IGcadTable * This,
            /* [in] */ VARIANT DirectionVector);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_TitleSuppressed)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TitleSuppressed )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_TitleSuppressed)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TitleSuppressed )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_HeaderSuppressed)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HeaderSuppressed )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_HeaderSuppressed)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HeaderSuppressed )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetAlignment)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAlignment )( 
            IGcadTable * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ GcCellAlignment *pCellAlignment);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetAlignment)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAlignment )( 
            IGcadTable * This,
            /* [in] */ int rowTypes,
            /* [in] */ GcCellAlignment cellAlignment);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetBackgroundColorNone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBackgroundColorNone )( 
            IGcadTable * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetBackgroundColorNone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBackgroundColorNone )( 
            IGcadTable * This,
            /* [in] */ int rowTypes,
            /* [in] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetBackgroundColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBackgroundColor )( 
            IGcadTable * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetBackgroundColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBackgroundColor )( 
            IGcadTable * This,
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetContentColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetContentColor )( 
            IGcadTable * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetContentColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetContentColor )( 
            IGcadTable * This,
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetTextStyle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTextStyle )( 
            IGcadTable * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetTextStyle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTextStyle )( 
            IGcadTable * This,
            /* [in] */ int rowTypes,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetTextHeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTextHeight )( 
            IGcadTable * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ double *pTextHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetTextHeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTextHeight )( 
            IGcadTable * This,
            /* [in] */ int rowTypes,
            /* [in] */ double TextHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetGridLineWeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridLineWeight )( 
            IGcadTable * This,
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetGridLineWeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridLineWeight )( 
            IGcadTable * This,
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetGridColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridColor )( 
            IGcadTable * This,
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetGridColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridColor )( 
            IGcadTable * This,
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetGridVisibility)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridVisibility )( 
            IGcadTable * This,
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetGridVisibility)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridVisibility )( 
            IGcadTable * This,
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ VARIANT_BOOL bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_TableStyleOverrides)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TableStyleOverrides )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT *pIntArray);
        
        DECLSPEC_XFGVIRT(IGcadTable, ClearTableStyleOverrides)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClearTableStyleOverrides )( 
            IGcadTable * This,
            /* [in] */ int flag);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellType)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellType )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ GcCellType *pCellType);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellType)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellType )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellType CellType);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellExtents)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellExtents )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ VARIANT_BOOL bOuterCell,
            /* [retval][out] */ VARIANT *pPts);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetAttachmentPoint)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAttachmentPoint )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ VARIANT *pAttachmentPoint);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellAlignment)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellAlignment )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ GcCellAlignment *pCellAlignment);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellAlignment)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellAlignment )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellAlignment cellAlignment);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellBackgroundColorNone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellBackgroundColorNone )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellBackgroundColorNone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellBackgroundColorNone )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellBackgroundColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellBackgroundColor )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellBackgroundColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellBackgroundColor )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellContentColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellContentColor )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellContentColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellContentColor )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellStyleOverrides)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellStyleOverrides )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ VARIANT *pIntArray);
        
        DECLSPEC_XFGVIRT(IGcadTable, DeleteCellContent)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteCellContent )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetRowType)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetRowType )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [retval][out] */ GcRowType *pRowType);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetText)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetText )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ BSTR *pStr);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetText)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetText )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ BSTR pStr);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellTextStyle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellTextStyle )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellTextStyle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellTextStyle )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellTextHeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellTextHeight )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ double *pTextHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellTextHeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellTextHeight )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ double TextHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetTextRotation)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTextRotation )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ GcRotationAngle *TextRotation);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetTextRotation)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTextRotation )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcRotationAngle TextRotation);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetAutoScale)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAutoScale )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetAutoScale)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAutoScale )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetBlockTableRecordId)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBlockTableRecordId )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ LONG_PTR *blkId);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetBlockTableRecordId)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBlockTableRecordId )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ LONG_PTR blkId,
            /* [in] */ VARIANT_BOOL bAutoFit);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetBlockScale)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBlockScale )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ double *blkScale);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetBlockScale)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBlockScale )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ double blkScale);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetBlockRotation)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBlockRotation )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ double *blkRotation);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetBlockRotation)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBlockRotation )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ double blkRotation);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetBlockAttributeValue)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBlockAttributeValue )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ LONG_PTR attdefId,
            /* [retval][out] */ BSTR *bstrValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetBlockAttributeValue)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBlockAttributeValue )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ LONG_PTR attdefId,
            /* [in] */ BSTR bstrValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellGridLineWeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellGridLineWeight )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellEdgeMask edge,
            /* [retval][out] */ GCAD_LWEIGHT *plineweight);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellGridLineWeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellGridLineWeight )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ int edges,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellGridColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellGridColor )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellEdgeMask edge,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellGridColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellGridColor )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ int edges,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellGridVisibility)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellGridVisibility )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellEdgeMask edge,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellGridVisibility)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellGridVisibility )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ int edges,
            /* [in] */ VARIANT_BOOL bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, InsertColumns)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertColumns )( 
            IGcadTable * This,
            /* [in] */ int col,
            /* [in] */ double Width,
            /* [in] */ int cols);
        
        DECLSPEC_XFGVIRT(IGcadTable, DeleteColumns)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteColumns )( 
            IGcadTable * This,
            /* [in] */ int col,
            /* [in] */ int cols);
        
        DECLSPEC_XFGVIRT(IGcadTable, InsertRows)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertRows )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ double Height,
            /* [in] */ int Rows);
        
        DECLSPEC_XFGVIRT(IGcadTable, DeleteRows)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteRows )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int Rows);
        
        DECLSPEC_XFGVIRT(IGcadTable, MergeCells)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MergeCells )( 
            IGcadTable * This,
            /* [in] */ int minRow,
            /* [in] */ int maxRow,
            /* [in] */ int minCol,
            /* [in] */ int maxCol);
        
        DECLSPEC_XFGVIRT(IGcadTable, UnmergeCells)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnmergeCells )( 
            IGcadTable * This,
            /* [in] */ int minRow,
            /* [in] */ int maxRow,
            /* [in] */ int minCol,
            /* [in] */ int maxCol);
        
        DECLSPEC_XFGVIRT(IGcadTable, IsMergedCell)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsMergedCell )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [out] */ int *minRow,
            /* [out] */ int *maxRow,
            /* [out] */ int *minCol,
            /* [out] */ int *maxCol,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetFieldId)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFieldId )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ LONG_PTR *fieldId);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetFieldId)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetFieldId )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ LONG_PTR fieldId);
        
        DECLSPEC_XFGVIRT(IGcadTable, GenerateLayout)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GenerateLayout )( 
            IGcadTable * This);
        
        DECLSPEC_XFGVIRT(IGcadTable, RecomputeTableBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RecomputeTableBlock )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL bForceUpdate);
        
        DECLSPEC_XFGVIRT(IGcadTable, HitTest)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HitTest )( 
            IGcadTable * This,
            /* [in] */ VARIANT wpt,
            /* [in] */ VARIANT wviewVec,
            /* [out] */ int *resultRowIndex,
            /* [out] */ int *resultColumnIndex,
            /* [retval][out] */ VARIANT_BOOL *bReturn);
        
        DECLSPEC_XFGVIRT(IGcadTable, Select)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Select )( 
            IGcadTable * This,
            /* [in] */ VARIANT wpt,
            /* [in] */ VARIANT wvwVec,
            /* [in] */ VARIANT wvwxVec,
            /* [in] */ double wxaper,
            /* [in] */ double wyaper,
            /* [in] */ VARIANT_BOOL allowOutside,
            /* [out] */ int *resultRowIndex,
            /* [out] */ int *resultColumnIndex);
        
        DECLSPEC_XFGVIRT(IGcadTable, SelectSubRegion)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SelectSubRegion )( 
            IGcadTable * This,
            /* [in] */ VARIANT wpt1,
            /* [in] */ VARIANT wpt2,
            /* [in] */ VARIANT wvwVec,
            /* [in] */ VARIANT wvwxVec,
            /* [in] */ GcSelectType seltype,
            /* [in] */ VARIANT_BOOL bIncludeCurrentSelection,
            /* [out] */ int *rowMin,
            /* [out] */ int *rowMax,
            /* [out] */ int *colMin,
            /* [out] */ int *colMax);
        
        DECLSPEC_XFGVIRT(IGcadTable, ReselectSubRegion)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ReselectSubRegion )( 
            IGcadTable * This);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetSubSelection)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSubSelection )( 
            IGcadTable * This,
            /* [out] */ int *rowMin,
            /* [out] */ int *rowMax,
            /* [out] */ int *colMin,
            /* [out] */ int *colMax);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetSubSelection)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSubSelection )( 
            IGcadTable * This,
            /* [in] */ int rowMin,
            /* [in] */ int rowMax,
            /* [in] */ int colMin,
            /* [in] */ int colMax);
        
        DECLSPEC_XFGVIRT(IGcadTable, ClearSubSelection)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClearSubSelection )( 
            IGcadTable * This);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_HasSubSelection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasSubSelection )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_RegenerateTableSuppressed)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RegenerateTableSuppressed )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_RegenerateTableSuppressed)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RegenerateTableSuppressed )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetDataType)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataType )( 
            IGcadTable * This,
            /* [in] */ GcRowType rowType,
            /* [out] */ GcValueDataType *pDataType,
            /* [out] */ GcValueUnitType *pUnitType);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetDataType)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetDataType )( 
            IGcadTable * This,
            /* [in] */ int rowTypes,
            /* [in] */ GcValueDataType dataType,
            /* [in] */ GcValueUnitType unitType);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetFormat)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFormat )( 
            IGcadTable * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ BSTR *pFormat);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetFormat)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetFormat )( 
            IGcadTable * This,
            /* [in] */ int rowTypes,
            BSTR pFormat);
        
        DECLSPEC_XFGVIRT(IGcadTable, FormatValue)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FormatValue )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            GcFormatOption nOption,
            BSTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellDataType)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellDataType )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [out] */ GcValueDataType *pDataType,
            /* [out] */ GcValueUnitType *pUnitType);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellDataType)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellDataType )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            GcValueDataType dataType,
            GcValueUnitType unitType);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellFormat)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellFormat )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ BSTR *pFormat);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellFormat)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellFormat )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            BSTR pFormat);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellValue)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellValue )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellValue)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellValue )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            VARIANT val);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellValueFromText)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellValueFromText )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ BSTR val,
            /* [in] */ GcParseOption nOption);
        
        DECLSPEC_XFGVIRT(IGcadTable, ResetCellValue)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ResetCellValue )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col);
        
        DECLSPEC_XFGVIRT(IGcadTable, IsEmpty)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsEmpty )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, CreateContent)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateContent )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nIndex,
            /* [retval][out] */ int *pInt);
        
        DECLSPEC_XFGVIRT(IGcadTable, MoveContent)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MoveContent )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nFromIndex,
            /* [in] */ int nToIndex);
        
        DECLSPEC_XFGVIRT(IGcadTable, DeleteContent)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteContent )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetValue)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetValue )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ VARIANT *pAcValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetValue)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetValue )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ VARIANT acValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetValueFromText)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetValueFromText )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ BSTR szText,
            /* [in] */ GcParseOption nOption);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetDataFormat)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataFormat )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ BSTR *pValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetDataFormat)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetDataFormat )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ BSTR szFormat);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetTextString)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTextString )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ BSTR *pTextString);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetTextString)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTextString )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ BSTR Text);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCustomData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCustomData )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ BSTR szKey,
            /* [out] */ VARIANT *pData);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCustomData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCustomData )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ BSTR szKey,
            /* [in] */ VARIANT data);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellStyle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellStyle )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ BSTR *pCellStyle);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellStyle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellStyle )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ BSTR szCellStyle);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetContentColor2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetContentColor2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetContentColor2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetContentColor2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetDataType2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataType2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [out] */ GcValueDataType *pDataType,
            /* [out] */ GcValueUnitType *pUnitType);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetDataType2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetDataType2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ GcValueDataType dataType,
            /* [in] */ GcValueUnitType unitType);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetTextStyle2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTextStyle2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ BSTR *pbstrStyleName);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetTextStyle2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTextStyle2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ BSTR bstrStyleName);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetTextHeight2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTextHeight2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ double *pHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetTextHeight2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTextHeight2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetRotation)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetRotation )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ double *pValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetRotation)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetRotation )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ double Value);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetAutoScale2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAutoScale2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ VARIANT_BOOL *bAutoScale);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetAutoScale2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAutoScale2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ VARIANT_BOOL bAutoFit);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetScale)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetScale )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ double *pScale);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetScale)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetScale )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ double scale);
        
        DECLSPEC_XFGVIRT(IGcadTable, RemoveAllOverrides)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveAllOverrides )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetGridLineWeight2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridLineWeight2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [retval][out] */ GCAD_LWEIGHT *plineweight);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetGridLineWeight2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridLineWeight2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetGridColor2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridColor2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetGridColor2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridColor2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetGridVisibility2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridVisibility2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetGridVisibility2)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridVisibility2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetGridDoubleLineSpacing)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridDoubleLineSpacing )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [retval][out] */ double *pValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetGridDoubleLineSpacing)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridDoubleLineSpacing )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [in] */ double fSpacing);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_EnableBreak)
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableBreak )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL rhs);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetBreakHeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBreakHeight )( 
            IGcadTable * This,
            /* [in] */ int nIndex,
            /* [retval][out] */ double *pHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetBreakHeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBreakHeight )( 
            IGcadTable * This,
            /* [in] */ int nIndex,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetContentType)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetContentType )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ GcCellContentType *pType);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetMargin)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMargin )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcCellMargin nMargin,
            /* [retval][out] */ double *pValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetMargin)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetMargin )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcCellMargin nMargins,
            /* [in] */ double fMargin);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetContentLayout)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetContentLayout )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [retval][out] */ GcCellContentLayout *pLayout);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetContentLayout)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetContentLayout )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ GcCellContentLayout nLayout);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetOverride)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetOverride )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ GcCellProperty *pValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetOverride)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetOverride )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ GcCellProperty nProp);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetGridLineStyle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridLineStyle )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineType,
            /* [retval][out] */ GcGridLineStyle *pStyle);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetGridLineStyle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridLineStyle )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcGridLineType nGridLineTypes,
            /* [in] */ GcGridLineStyle nLineStyle);
        
        DECLSPEC_XFGVIRT(IGcadTable, InsertRowsAndInherit)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertRowsAndInherit )( 
            IGcadTable * This,
            /* [in] */ int nIndex,
            /* [in] */ int nInheritFrom,
            /* [in] */ int nNumRows);
        
        DECLSPEC_XFGVIRT(IGcadTable, InsertColumnsAndInherit)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertColumnsAndInherit )( 
            IGcadTable * This,
            /* [in] */ int col,
            /* [in] */ int nInheritFrom,
            /* [in] */ int nNumCols);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetHasFormula)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetHasFormula )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetFormula)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFormula )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ BSTR *pszFormula);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetFormula)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetFormula )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ BSTR pszFormula);
        
        DECLSPEC_XFGVIRT(IGcadTable, IsContentEditable)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsContentEditable )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, IsFormatEditable)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsFormatEditable )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetCellState)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCellState )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ GcCellState nState);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetCellState)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCellState )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ GcCellState *nState);
        
        DECLSPEC_XFGVIRT(IGcadTable, EnableMergeAll)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EnableMergeAll )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ VARIANT_BOOL bEnable);
        
        DECLSPEC_XFGVIRT(IGcadTable, IsMergeAllEnabled)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsMergeAllEnabled )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetColumnName)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetColumnName )( 
            IGcadTable * This,
            /* [in] */ int nIndex,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetColumnName)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetColumnName )( 
            IGcadTable * This,
            /* [in] */ int nIndex,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetToolTip)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetToolTip )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ BSTR tip);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetBlockAttributeValue2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetBlockAttributeValue2 )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ int nContent,
            /* [in] */ LONG_PTR attdefId,
            /* [retval][out] */ BSTR *bstrValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetBlockAttributeValue2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetBlockAttributeValue2 )( 
            IGcadTable * This,
            /* [in] */ int row,
            /* [in] */ int col,
            /* [in] */ int nContent,
            /* [in] */ LONG_PTR attdefId,
            /* [in] */ BSTR bstrValue);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetFieldId2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetFieldId2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ LONG_PTR *pAcDbObjectId);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetFieldId2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetFieldId2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ LONG_PTR acDbObjectId,
            /* [in] */ GcCellOption nflag);
        
        DECLSPEC_XFGVIRT(IGcadTable, GetBlockTableRecordId2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetBlockTableRecordId2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [retval][out] */ LONG_PTR *pAcDbObjectId);
        
        DECLSPEC_XFGVIRT(IGcadTable, SetBlockTableRecordId2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetBlockTableRecordId2 )( 
            IGcadTable * This,
            /* [in] */ int nRow,
            /* [in] */ int nCol,
            /* [in] */ int nContent,
            /* [in] */ LONG_PTR blkId,
            /* [in] */ VARIANT_BOOL autoFit);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_BreaksEnabled)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BreaksEnabled )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT_BOOL *bEnabled);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_BreaksEnabled)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BreaksEnabled )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL bEnabled);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_RepeatTopLabels)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RepeatTopLabels )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT_BOOL *bEnabled);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_RepeatTopLabels)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RepeatTopLabels )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL bEnabled);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_RepeatBottomLabels)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RepeatBottomLabels )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT_BOOL *bEnabled);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_RepeatBottomLabels)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RepeatBottomLabels )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL bEnabled);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_TableBreakFlowDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TableBreakFlowDirection )( 
            IGcadTable * This,
            /* [retval][out] */ GcTableFlowDirection *pDir);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_TableBreakFlowDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TableBreakFlowDirection )( 
            IGcadTable * This,
            /* [in] */ GcTableFlowDirection pDir);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_AllowManualPositions)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowManualPositions )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT_BOOL *bEnabled);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_AllowManualPositions)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowManualPositions )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL bEnabled);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_AllowManualHeights)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowManualHeights )( 
            IGcadTable * This,
            /* [retval][out] */ VARIANT_BOOL *bEnabled);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_AllowManualHeights)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowManualHeights )( 
            IGcadTable * This,
            /* [in] */ VARIANT_BOOL bEnabled);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_TableBreakHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TableBreakHeight )( 
            IGcadTable * This,
            /* [retval][out] */ double *pHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_TableBreakHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TableBreakHeight )( 
            IGcadTable * This,
            /* [in] */ double pHeight);
        
        DECLSPEC_XFGVIRT(IGcadTable, get_BreakSpacing)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BreakSpacing )( 
            IGcadTable * This,
            /* [retval][out] */ double *pSpacing);
        
        DECLSPEC_XFGVIRT(IGcadTable, put_BreakSpacing)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BreakSpacing )( 
            IGcadTable * This,
            /* [in] */ double pSpacing);
        
        END_INTERFACE
    } IGcadTableVtbl;

    interface IGcadTable
    {
        CONST_VTBL struct IGcadTableVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadTable_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadTable_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadTable_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadTable_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadTable_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadTable_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadTable_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadTable_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadTable_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadTable_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadTable_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadTable_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadTable_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadTable_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadTable_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadTable_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadTable_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadTable_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadTable_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadTable_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadTable_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadTable_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadTable_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadTable_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadTable_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadTable_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadTable_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadTable_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadTable_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadTable_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadTable_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadTable_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadTable_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadTable_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadTable_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadTable_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadTable_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadTable_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadTable_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadTable_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadTable_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadTable_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadTable_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadTable_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadTable_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadTable_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadTable_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadTable_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadTable_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadTable_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadTable_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadTable_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadTable_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadTable_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadTable_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadTable_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadTable_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadTable_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadTable_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadTable_get_Rows(This,pRows)	\
    ( (This)->lpVtbl -> get_Rows(This,pRows) ) 

#define IGcadTable_put_Rows(This,pRows)	\
    ( (This)->lpVtbl -> put_Rows(This,pRows) ) 

#define IGcadTable_get_Columns(This,pColumns)	\
    ( (This)->lpVtbl -> get_Columns(This,pColumns) ) 

#define IGcadTable_put_Columns(This,pColumns)	\
    ( (This)->lpVtbl -> put_Columns(This,pColumns) ) 

#define IGcadTable_get_FlowDirection(This,pFlow)	\
    ( (This)->lpVtbl -> get_FlowDirection(This,pFlow) ) 

#define IGcadTable_put_FlowDirection(This,pFlow)	\
    ( (This)->lpVtbl -> put_FlowDirection(This,pFlow) ) 

#define IGcadTable_get_Width(This,pWidth)	\
    ( (This)->lpVtbl -> get_Width(This,pWidth) ) 

#define IGcadTable_put_Width(This,pWidth)	\
    ( (This)->lpVtbl -> put_Width(This,pWidth) ) 

#define IGcadTable_get_Height(This,pHeight)	\
    ( (This)->lpVtbl -> get_Height(This,pHeight) ) 

#define IGcadTable_put_Height(This,pHeight)	\
    ( (This)->lpVtbl -> put_Height(This,pHeight) ) 

#define IGcadTable_get_VertCellMargin(This,pGap)	\
    ( (This)->lpVtbl -> get_VertCellMargin(This,pGap) ) 

#define IGcadTable_put_VertCellMargin(This,pGap)	\
    ( (This)->lpVtbl -> put_VertCellMargin(This,pGap) ) 

#define IGcadTable_get_HorzCellMargin(This,pGap)	\
    ( (This)->lpVtbl -> get_HorzCellMargin(This,pGap) ) 

#define IGcadTable_put_HorzCellMargin(This,pGap)	\
    ( (This)->lpVtbl -> put_HorzCellMargin(This,pGap) ) 

#define IGcadTable_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadTable_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadTable_GetColumnWidth(This,col,pWidth)	\
    ( (This)->lpVtbl -> GetColumnWidth(This,col,pWidth) ) 

#define IGcadTable_SetColumnWidth(This,col,Width)	\
    ( (This)->lpVtbl -> SetColumnWidth(This,col,Width) ) 

#define IGcadTable_put_ColumnWidth(This,rhs)	\
    ( (This)->lpVtbl -> put_ColumnWidth(This,rhs) ) 

#define IGcadTable_GetRowHeight(This,row,pHeight)	\
    ( (This)->lpVtbl -> GetRowHeight(This,row,pHeight) ) 

#define IGcadTable_SetRowHeight(This,row,Height)	\
    ( (This)->lpVtbl -> SetRowHeight(This,row,Height) ) 

#define IGcadTable_put_RowHeight(This,rhs)	\
    ( (This)->lpVtbl -> put_RowHeight(This,rhs) ) 

#define IGcadTable_GetMinimumColumnWidth(This,col,pWidth)	\
    ( (This)->lpVtbl -> GetMinimumColumnWidth(This,col,pWidth) ) 

#define IGcadTable_GetMinimumRowHeight(This,row,pHeight)	\
    ( (This)->lpVtbl -> GetMinimumRowHeight(This,row,pHeight) ) 

#define IGcadTable_get_MinimumTableWidth(This,pWidth)	\
    ( (This)->lpVtbl -> get_MinimumTableWidth(This,pWidth) ) 

#define IGcadTable_get_MinimumTableHeight(This,pHeight)	\
    ( (This)->lpVtbl -> get_MinimumTableHeight(This,pHeight) ) 

#define IGcadTable_get_Direction(This,DirectionVector)	\
    ( (This)->lpVtbl -> get_Direction(This,DirectionVector) ) 

#define IGcadTable_put_Direction(This,DirectionVector)	\
    ( (This)->lpVtbl -> put_Direction(This,DirectionVector) ) 

#define IGcadTable_get_TitleSuppressed(This,bValue)	\
    ( (This)->lpVtbl -> get_TitleSuppressed(This,bValue) ) 

#define IGcadTable_put_TitleSuppressed(This,bValue)	\
    ( (This)->lpVtbl -> put_TitleSuppressed(This,bValue) ) 

#define IGcadTable_get_HeaderSuppressed(This,bValue)	\
    ( (This)->lpVtbl -> get_HeaderSuppressed(This,bValue) ) 

#define IGcadTable_put_HeaderSuppressed(This,bValue)	\
    ( (This)->lpVtbl -> put_HeaderSuppressed(This,bValue) ) 

#define IGcadTable_GetAlignment(This,rowType,pCellAlignment)	\
    ( (This)->lpVtbl -> GetAlignment(This,rowType,pCellAlignment) ) 

#define IGcadTable_SetAlignment(This,rowTypes,cellAlignment)	\
    ( (This)->lpVtbl -> SetAlignment(This,rowTypes,cellAlignment) ) 

#define IGcadTable_GetBackgroundColorNone(This,rowType,bValue)	\
    ( (This)->lpVtbl -> GetBackgroundColorNone(This,rowType,bValue) ) 

#define IGcadTable_SetBackgroundColorNone(This,rowTypes,bValue)	\
    ( (This)->lpVtbl -> SetBackgroundColorNone(This,rowTypes,bValue) ) 

#define IGcadTable_GetBackgroundColor(This,rowType,pColor)	\
    ( (This)->lpVtbl -> GetBackgroundColor(This,rowType,pColor) ) 

#define IGcadTable_SetBackgroundColor(This,rowTypes,pColor)	\
    ( (This)->lpVtbl -> SetBackgroundColor(This,rowTypes,pColor) ) 

#define IGcadTable_GetContentColor(This,rowType,pColor)	\
    ( (This)->lpVtbl -> GetContentColor(This,rowType,pColor) ) 

#define IGcadTable_SetContentColor(This,rowTypes,pColor)	\
    ( (This)->lpVtbl -> SetContentColor(This,rowTypes,pColor) ) 

#define IGcadTable_GetTextStyle(This,rowType,bstrName)	\
    ( (This)->lpVtbl -> GetTextStyle(This,rowType,bstrName) ) 

#define IGcadTable_SetTextStyle(This,rowTypes,bstrName)	\
    ( (This)->lpVtbl -> SetTextStyle(This,rowTypes,bstrName) ) 

#define IGcadTable_GetTextHeight(This,rowType,pTextHeight)	\
    ( (This)->lpVtbl -> GetTextHeight(This,rowType,pTextHeight) ) 

#define IGcadTable_SetTextHeight(This,rowTypes,TextHeight)	\
    ( (This)->lpVtbl -> SetTextHeight(This,rowTypes,TextHeight) ) 

#define IGcadTable_GetGridLineWeight(This,gridLineType,rowType,Lineweight)	\
    ( (This)->lpVtbl -> GetGridLineWeight(This,gridLineType,rowType,Lineweight) ) 

#define IGcadTable_SetGridLineWeight(This,gridLineTypes,rowTypes,Lineweight)	\
    ( (This)->lpVtbl -> SetGridLineWeight(This,gridLineTypes,rowTypes,Lineweight) ) 

#define IGcadTable_GetGridColor(This,gridLineType,rowType,pColor)	\
    ( (This)->lpVtbl -> GetGridColor(This,gridLineType,rowType,pColor) ) 

#define IGcadTable_SetGridColor(This,gridLineTypes,rowTypes,pColor)	\
    ( (This)->lpVtbl -> SetGridColor(This,gridLineTypes,rowTypes,pColor) ) 

#define IGcadTable_GetGridVisibility(This,gridLineType,rowType,bValue)	\
    ( (This)->lpVtbl -> GetGridVisibility(This,gridLineType,rowType,bValue) ) 

#define IGcadTable_SetGridVisibility(This,gridLineTypes,rowTypes,bValue)	\
    ( (This)->lpVtbl -> SetGridVisibility(This,gridLineTypes,rowTypes,bValue) ) 

#define IGcadTable_get_TableStyleOverrides(This,pIntArray)	\
    ( (This)->lpVtbl -> get_TableStyleOverrides(This,pIntArray) ) 

#define IGcadTable_ClearTableStyleOverrides(This,flag)	\
    ( (This)->lpVtbl -> ClearTableStyleOverrides(This,flag) ) 

#define IGcadTable_GetCellType(This,row,col,pCellType)	\
    ( (This)->lpVtbl -> GetCellType(This,row,col,pCellType) ) 

#define IGcadTable_SetCellType(This,row,col,CellType)	\
    ( (This)->lpVtbl -> SetCellType(This,row,col,CellType) ) 

#define IGcadTable_GetCellExtents(This,row,col,bOuterCell,pPts)	\
    ( (This)->lpVtbl -> GetCellExtents(This,row,col,bOuterCell,pPts) ) 

#define IGcadTable_GetAttachmentPoint(This,row,col,pAttachmentPoint)	\
    ( (This)->lpVtbl -> GetAttachmentPoint(This,row,col,pAttachmentPoint) ) 

#define IGcadTable_GetCellAlignment(This,row,col,pCellAlignment)	\
    ( (This)->lpVtbl -> GetCellAlignment(This,row,col,pCellAlignment) ) 

#define IGcadTable_SetCellAlignment(This,row,col,cellAlignment)	\
    ( (This)->lpVtbl -> SetCellAlignment(This,row,col,cellAlignment) ) 

#define IGcadTable_GetCellBackgroundColorNone(This,row,col,bValue)	\
    ( (This)->lpVtbl -> GetCellBackgroundColorNone(This,row,col,bValue) ) 

#define IGcadTable_SetCellBackgroundColorNone(This,row,col,bValue)	\
    ( (This)->lpVtbl -> SetCellBackgroundColorNone(This,row,col,bValue) ) 

#define IGcadTable_GetCellBackgroundColor(This,row,col,pColor)	\
    ( (This)->lpVtbl -> GetCellBackgroundColor(This,row,col,pColor) ) 

#define IGcadTable_SetCellBackgroundColor(This,row,col,pColor)	\
    ( (This)->lpVtbl -> SetCellBackgroundColor(This,row,col,pColor) ) 

#define IGcadTable_GetCellContentColor(This,row,col,pColor)	\
    ( (This)->lpVtbl -> GetCellContentColor(This,row,col,pColor) ) 

#define IGcadTable_SetCellContentColor(This,row,col,pColor)	\
    ( (This)->lpVtbl -> SetCellContentColor(This,row,col,pColor) ) 

#define IGcadTable_GetCellStyleOverrides(This,row,col,pIntArray)	\
    ( (This)->lpVtbl -> GetCellStyleOverrides(This,row,col,pIntArray) ) 

#define IGcadTable_DeleteCellContent(This,row,col)	\
    ( (This)->lpVtbl -> DeleteCellContent(This,row,col) ) 

#define IGcadTable_GetRowType(This,row,pRowType)	\
    ( (This)->lpVtbl -> GetRowType(This,row,pRowType) ) 

#define IGcadTable_GetText(This,row,col,pStr)	\
    ( (This)->lpVtbl -> GetText(This,row,col,pStr) ) 

#define IGcadTable_SetText(This,row,col,pStr)	\
    ( (This)->lpVtbl -> SetText(This,row,col,pStr) ) 

#define IGcadTable_GetCellTextStyle(This,row,col,bstrName)	\
    ( (This)->lpVtbl -> GetCellTextStyle(This,row,col,bstrName) ) 

#define IGcadTable_SetCellTextStyle(This,row,col,bstrName)	\
    ( (This)->lpVtbl -> SetCellTextStyle(This,row,col,bstrName) ) 

#define IGcadTable_GetCellTextHeight(This,row,col,pTextHeight)	\
    ( (This)->lpVtbl -> GetCellTextHeight(This,row,col,pTextHeight) ) 

#define IGcadTable_SetCellTextHeight(This,row,col,TextHeight)	\
    ( (This)->lpVtbl -> SetCellTextHeight(This,row,col,TextHeight) ) 

#define IGcadTable_GetTextRotation(This,row,col,TextRotation)	\
    ( (This)->lpVtbl -> GetTextRotation(This,row,col,TextRotation) ) 

#define IGcadTable_SetTextRotation(This,row,col,TextRotation)	\
    ( (This)->lpVtbl -> SetTextRotation(This,row,col,TextRotation) ) 

#define IGcadTable_GetAutoScale(This,row,col,bValue)	\
    ( (This)->lpVtbl -> GetAutoScale(This,row,col,bValue) ) 

#define IGcadTable_SetAutoScale(This,row,col,bValue)	\
    ( (This)->lpVtbl -> SetAutoScale(This,row,col,bValue) ) 

#define IGcadTable_GetBlockTableRecordId(This,row,col,blkId)	\
    ( (This)->lpVtbl -> GetBlockTableRecordId(This,row,col,blkId) ) 

#define IGcadTable_SetBlockTableRecordId(This,row,col,blkId,bAutoFit)	\
    ( (This)->lpVtbl -> SetBlockTableRecordId(This,row,col,blkId,bAutoFit) ) 

#define IGcadTable_GetBlockScale(This,row,col,blkScale)	\
    ( (This)->lpVtbl -> GetBlockScale(This,row,col,blkScale) ) 

#define IGcadTable_SetBlockScale(This,row,col,blkScale)	\
    ( (This)->lpVtbl -> SetBlockScale(This,row,col,blkScale) ) 

#define IGcadTable_GetBlockRotation(This,row,col,blkRotation)	\
    ( (This)->lpVtbl -> GetBlockRotation(This,row,col,blkRotation) ) 

#define IGcadTable_SetBlockRotation(This,row,col,blkRotation)	\
    ( (This)->lpVtbl -> SetBlockRotation(This,row,col,blkRotation) ) 

#define IGcadTable_GetBlockAttributeValue(This,row,col,attdefId,bstrValue)	\
    ( (This)->lpVtbl -> GetBlockAttributeValue(This,row,col,attdefId,bstrValue) ) 

#define IGcadTable_SetBlockAttributeValue(This,row,col,attdefId,bstrValue)	\
    ( (This)->lpVtbl -> SetBlockAttributeValue(This,row,col,attdefId,bstrValue) ) 

#define IGcadTable_GetCellGridLineWeight(This,row,col,edge,plineweight)	\
    ( (This)->lpVtbl -> GetCellGridLineWeight(This,row,col,edge,plineweight) ) 

#define IGcadTable_SetCellGridLineWeight(This,row,col,edges,Lineweight)	\
    ( (This)->lpVtbl -> SetCellGridLineWeight(This,row,col,edges,Lineweight) ) 

#define IGcadTable_GetCellGridColor(This,row,col,edge,pColor)	\
    ( (This)->lpVtbl -> GetCellGridColor(This,row,col,edge,pColor) ) 

#define IGcadTable_SetCellGridColor(This,row,col,edges,pColor)	\
    ( (This)->lpVtbl -> SetCellGridColor(This,row,col,edges,pColor) ) 

#define IGcadTable_GetCellGridVisibility(This,row,col,edge,bValue)	\
    ( (This)->lpVtbl -> GetCellGridVisibility(This,row,col,edge,bValue) ) 

#define IGcadTable_SetCellGridVisibility(This,row,col,edges,bValue)	\
    ( (This)->lpVtbl -> SetCellGridVisibility(This,row,col,edges,bValue) ) 

#define IGcadTable_InsertColumns(This,col,Width,cols)	\
    ( (This)->lpVtbl -> InsertColumns(This,col,Width,cols) ) 

#define IGcadTable_DeleteColumns(This,col,cols)	\
    ( (This)->lpVtbl -> DeleteColumns(This,col,cols) ) 

#define IGcadTable_InsertRows(This,row,Height,Rows)	\
    ( (This)->lpVtbl -> InsertRows(This,row,Height,Rows) ) 

#define IGcadTable_DeleteRows(This,row,Rows)	\
    ( (This)->lpVtbl -> DeleteRows(This,row,Rows) ) 

#define IGcadTable_MergeCells(This,minRow,maxRow,minCol,maxCol)	\
    ( (This)->lpVtbl -> MergeCells(This,minRow,maxRow,minCol,maxCol) ) 

#define IGcadTable_UnmergeCells(This,minRow,maxRow,minCol,maxCol)	\
    ( (This)->lpVtbl -> UnmergeCells(This,minRow,maxRow,minCol,maxCol) ) 

#define IGcadTable_IsMergedCell(This,row,col,minRow,maxRow,minCol,maxCol,pbValue)	\
    ( (This)->lpVtbl -> IsMergedCell(This,row,col,minRow,maxRow,minCol,maxCol,pbValue) ) 

#define IGcadTable_GetFieldId(This,row,col,fieldId)	\
    ( (This)->lpVtbl -> GetFieldId(This,row,col,fieldId) ) 

#define IGcadTable_SetFieldId(This,row,col,fieldId)	\
    ( (This)->lpVtbl -> SetFieldId(This,row,col,fieldId) ) 

#define IGcadTable_GenerateLayout(This)	\
    ( (This)->lpVtbl -> GenerateLayout(This) ) 

#define IGcadTable_RecomputeTableBlock(This,bForceUpdate)	\
    ( (This)->lpVtbl -> RecomputeTableBlock(This,bForceUpdate) ) 

#define IGcadTable_HitTest(This,wpt,wviewVec,resultRowIndex,resultColumnIndex,bReturn)	\
    ( (This)->lpVtbl -> HitTest(This,wpt,wviewVec,resultRowIndex,resultColumnIndex,bReturn) ) 

#define IGcadTable_Select(This,wpt,wvwVec,wvwxVec,wxaper,wyaper,allowOutside,resultRowIndex,resultColumnIndex)	\
    ( (This)->lpVtbl -> Select(This,wpt,wvwVec,wvwxVec,wxaper,wyaper,allowOutside,resultRowIndex,resultColumnIndex) ) 

#define IGcadTable_SelectSubRegion(This,wpt1,wpt2,wvwVec,wvwxVec,seltype,bIncludeCurrentSelection,rowMin,rowMax,colMin,colMax)	\
    ( (This)->lpVtbl -> SelectSubRegion(This,wpt1,wpt2,wvwVec,wvwxVec,seltype,bIncludeCurrentSelection,rowMin,rowMax,colMin,colMax) ) 

#define IGcadTable_ReselectSubRegion(This)	\
    ( (This)->lpVtbl -> ReselectSubRegion(This) ) 

#define IGcadTable_GetSubSelection(This,rowMin,rowMax,colMin,colMax)	\
    ( (This)->lpVtbl -> GetSubSelection(This,rowMin,rowMax,colMin,colMax) ) 

#define IGcadTable_SetSubSelection(This,rowMin,rowMax,colMin,colMax)	\
    ( (This)->lpVtbl -> SetSubSelection(This,rowMin,rowMax,colMin,colMax) ) 

#define IGcadTable_ClearSubSelection(This)	\
    ( (This)->lpVtbl -> ClearSubSelection(This) ) 

#define IGcadTable_get_HasSubSelection(This,pbValue)	\
    ( (This)->lpVtbl -> get_HasSubSelection(This,pbValue) ) 

#define IGcadTable_get_RegenerateTableSuppressed(This,bValue)	\
    ( (This)->lpVtbl -> get_RegenerateTableSuppressed(This,bValue) ) 

#define IGcadTable_put_RegenerateTableSuppressed(This,bValue)	\
    ( (This)->lpVtbl -> put_RegenerateTableSuppressed(This,bValue) ) 

#define IGcadTable_GetDataType(This,rowType,pDataType,pUnitType)	\
    ( (This)->lpVtbl -> GetDataType(This,rowType,pDataType,pUnitType) ) 

#define IGcadTable_SetDataType(This,rowTypes,dataType,unitType)	\
    ( (This)->lpVtbl -> SetDataType(This,rowTypes,dataType,unitType) ) 

#define IGcadTable_GetFormat(This,rowType,pFormat)	\
    ( (This)->lpVtbl -> GetFormat(This,rowType,pFormat) ) 

#define IGcadTable_SetFormat(This,rowTypes,pFormat)	\
    ( (This)->lpVtbl -> SetFormat(This,rowTypes,pFormat) ) 

#define IGcadTable_FormatValue(This,row,col,nOption,pVal)	\
    ( (This)->lpVtbl -> FormatValue(This,row,col,nOption,pVal) ) 

#define IGcadTable_GetCellDataType(This,row,col,pDataType,pUnitType)	\
    ( (This)->lpVtbl -> GetCellDataType(This,row,col,pDataType,pUnitType) ) 

#define IGcadTable_SetCellDataType(This,row,col,dataType,unitType)	\
    ( (This)->lpVtbl -> SetCellDataType(This,row,col,dataType,unitType) ) 

#define IGcadTable_GetCellFormat(This,row,col,pFormat)	\
    ( (This)->lpVtbl -> GetCellFormat(This,row,col,pFormat) ) 

#define IGcadTable_SetCellFormat(This,row,col,pFormat)	\
    ( (This)->lpVtbl -> SetCellFormat(This,row,col,pFormat) ) 

#define IGcadTable_GetCellValue(This,row,col,pVal)	\
    ( (This)->lpVtbl -> GetCellValue(This,row,col,pVal) ) 

#define IGcadTable_SetCellValue(This,row,col,val)	\
    ( (This)->lpVtbl -> SetCellValue(This,row,col,val) ) 

#define IGcadTable_SetCellValueFromText(This,row,col,val,nOption)	\
    ( (This)->lpVtbl -> SetCellValueFromText(This,row,col,val,nOption) ) 

#define IGcadTable_ResetCellValue(This,row,col)	\
    ( (This)->lpVtbl -> ResetCellValue(This,row,col) ) 

#define IGcadTable_IsEmpty(This,nRow,nCol,bValue)	\
    ( (This)->lpVtbl -> IsEmpty(This,nRow,nCol,bValue) ) 

#define IGcadTable_CreateContent(This,nRow,nCol,nIndex,pInt)	\
    ( (This)->lpVtbl -> CreateContent(This,nRow,nCol,nIndex,pInt) ) 

#define IGcadTable_MoveContent(This,nRow,nCol,nFromIndex,nToIndex)	\
    ( (This)->lpVtbl -> MoveContent(This,nRow,nCol,nFromIndex,nToIndex) ) 

#define IGcadTable_DeleteContent(This,nRow,nCol)	\
    ( (This)->lpVtbl -> DeleteContent(This,nRow,nCol) ) 

#define IGcadTable_GetValue(This,nRow,nCol,nContent,pAcValue)	\
    ( (This)->lpVtbl -> GetValue(This,nRow,nCol,nContent,pAcValue) ) 

#define IGcadTable_SetValue(This,nRow,nCol,nContent,acValue)	\
    ( (This)->lpVtbl -> SetValue(This,nRow,nCol,nContent,acValue) ) 

#define IGcadTable_SetValueFromText(This,nRow,nCol,nContent,szText,nOption)	\
    ( (This)->lpVtbl -> SetValueFromText(This,nRow,nCol,nContent,szText,nOption) ) 

#define IGcadTable_GetDataFormat(This,nRow,nCol,nContent,pValue)	\
    ( (This)->lpVtbl -> GetDataFormat(This,nRow,nCol,nContent,pValue) ) 

#define IGcadTable_SetDataFormat(This,nRow,nCol,nContent,szFormat)	\
    ( (This)->lpVtbl -> SetDataFormat(This,nRow,nCol,nContent,szFormat) ) 

#define IGcadTable_GetTextString(This,nRow,nCol,nContent,pTextString)	\
    ( (This)->lpVtbl -> GetTextString(This,nRow,nCol,nContent,pTextString) ) 

#define IGcadTable_SetTextString(This,nRow,nCol,nContent,Text)	\
    ( (This)->lpVtbl -> SetTextString(This,nRow,nCol,nContent,Text) ) 

#define IGcadTable_GetCustomData(This,nRow,nCol,szKey,pData)	\
    ( (This)->lpVtbl -> GetCustomData(This,nRow,nCol,szKey,pData) ) 

#define IGcadTable_SetCustomData(This,nRow,nCol,szKey,data)	\
    ( (This)->lpVtbl -> SetCustomData(This,nRow,nCol,szKey,data) ) 

#define IGcadTable_GetCellStyle(This,nRow,nCol,pCellStyle)	\
    ( (This)->lpVtbl -> GetCellStyle(This,nRow,nCol,pCellStyle) ) 

#define IGcadTable_SetCellStyle(This,nRow,nCol,szCellStyle)	\
    ( (This)->lpVtbl -> SetCellStyle(This,nRow,nCol,szCellStyle) ) 

#define IGcadTable_GetContentColor2(This,nRow,nCol,nContent,pColor)	\
    ( (This)->lpVtbl -> GetContentColor2(This,nRow,nCol,nContent,pColor) ) 

#define IGcadTable_SetContentColor2(This,nRow,nCol,nContent,pColor)	\
    ( (This)->lpVtbl -> SetContentColor2(This,nRow,nCol,nContent,pColor) ) 

#define IGcadTable_GetDataType2(This,nRow,nCol,nContent,pDataType,pUnitType)	\
    ( (This)->lpVtbl -> GetDataType2(This,nRow,nCol,nContent,pDataType,pUnitType) ) 

#define IGcadTable_SetDataType2(This,nRow,nCol,nContent,dataType,unitType)	\
    ( (This)->lpVtbl -> SetDataType2(This,nRow,nCol,nContent,dataType,unitType) ) 

#define IGcadTable_GetTextStyle2(This,nRow,nCol,nContent,pbstrStyleName)	\
    ( (This)->lpVtbl -> GetTextStyle2(This,nRow,nCol,nContent,pbstrStyleName) ) 

#define IGcadTable_SetTextStyle2(This,nRow,nCol,nContent,bstrStyleName)	\
    ( (This)->lpVtbl -> SetTextStyle2(This,nRow,nCol,nContent,bstrStyleName) ) 

#define IGcadTable_GetTextHeight2(This,nRow,nCol,nContent,pHeight)	\
    ( (This)->lpVtbl -> GetTextHeight2(This,nRow,nCol,nContent,pHeight) ) 

#define IGcadTable_SetTextHeight2(This,nRow,nCol,nContent,Height)	\
    ( (This)->lpVtbl -> SetTextHeight2(This,nRow,nCol,nContent,Height) ) 

#define IGcadTable_GetRotation(This,nRow,nCol,nContent,pValue)	\
    ( (This)->lpVtbl -> GetRotation(This,nRow,nCol,nContent,pValue) ) 

#define IGcadTable_SetRotation(This,nRow,nCol,nContent,Value)	\
    ( (This)->lpVtbl -> SetRotation(This,nRow,nCol,nContent,Value) ) 

#define IGcadTable_GetAutoScale2(This,nRow,nCol,nContent,bAutoScale)	\
    ( (This)->lpVtbl -> GetAutoScale2(This,nRow,nCol,nContent,bAutoScale) ) 

#define IGcadTable_SetAutoScale2(This,nRow,nCol,nContent,bAutoFit)	\
    ( (This)->lpVtbl -> SetAutoScale2(This,nRow,nCol,nContent,bAutoFit) ) 

#define IGcadTable_GetScale(This,nRow,nCol,nContent,pScale)	\
    ( (This)->lpVtbl -> GetScale(This,nRow,nCol,nContent,pScale) ) 

#define IGcadTable_SetScale(This,nRow,nCol,nContent,scale)	\
    ( (This)->lpVtbl -> SetScale(This,nRow,nCol,nContent,scale) ) 

#define IGcadTable_RemoveAllOverrides(This,nRow,nCol)	\
    ( (This)->lpVtbl -> RemoveAllOverrides(This,nRow,nCol) ) 

#define IGcadTable_GetGridLineWeight2(This,nRow,nCol,nGridLineType,plineweight)	\
    ( (This)->lpVtbl -> GetGridLineWeight2(This,nRow,nCol,nGridLineType,plineweight) ) 

#define IGcadTable_SetGridLineWeight2(This,nRow,nCol,nGridLineType,Lineweight)	\
    ( (This)->lpVtbl -> SetGridLineWeight2(This,nRow,nCol,nGridLineType,Lineweight) ) 

#define IGcadTable_GetGridColor2(This,nRow,nCol,nGridLineType,pColor)	\
    ( (This)->lpVtbl -> GetGridColor2(This,nRow,nCol,nGridLineType,pColor) ) 

#define IGcadTable_SetGridColor2(This,nRow,nCol,nGridLineType,pColor)	\
    ( (This)->lpVtbl -> SetGridColor2(This,nRow,nCol,nGridLineType,pColor) ) 

#define IGcadTable_GetGridVisibility2(This,nRow,nCol,nGridLineType,bVisible)	\
    ( (This)->lpVtbl -> GetGridVisibility2(This,nRow,nCol,nGridLineType,bVisible) ) 

#define IGcadTable_SetGridVisibility2(This,nRow,nCol,nGridLineType,bVisible)	\
    ( (This)->lpVtbl -> SetGridVisibility2(This,nRow,nCol,nGridLineType,bVisible) ) 

#define IGcadTable_GetGridDoubleLineSpacing(This,nRow,nCol,nGridLineType,pValue)	\
    ( (This)->lpVtbl -> GetGridDoubleLineSpacing(This,nRow,nCol,nGridLineType,pValue) ) 

#define IGcadTable_SetGridDoubleLineSpacing(This,nRow,nCol,nGridLineType,fSpacing)	\
    ( (This)->lpVtbl -> SetGridDoubleLineSpacing(This,nRow,nCol,nGridLineType,fSpacing) ) 

#define IGcadTable_put_EnableBreak(This,rhs)	\
    ( (This)->lpVtbl -> put_EnableBreak(This,rhs) ) 

#define IGcadTable_GetBreakHeight(This,nIndex,pHeight)	\
    ( (This)->lpVtbl -> GetBreakHeight(This,nIndex,pHeight) ) 

#define IGcadTable_SetBreakHeight(This,nIndex,Height)	\
    ( (This)->lpVtbl -> SetBreakHeight(This,nIndex,Height) ) 

#define IGcadTable_GetContentType(This,nRow,nCol,pType)	\
    ( (This)->lpVtbl -> GetContentType(This,nRow,nCol,pType) ) 

#define IGcadTable_GetMargin(This,nRow,nCol,nMargin,pValue)	\
    ( (This)->lpVtbl -> GetMargin(This,nRow,nCol,nMargin,pValue) ) 

#define IGcadTable_SetMargin(This,nRow,nCol,nMargins,fMargin)	\
    ( (This)->lpVtbl -> SetMargin(This,nRow,nCol,nMargins,fMargin) ) 

#define IGcadTable_GetContentLayout(This,row,col,pLayout)	\
    ( (This)->lpVtbl -> GetContentLayout(This,row,col,pLayout) ) 

#define IGcadTable_SetContentLayout(This,row,col,nLayout)	\
    ( (This)->lpVtbl -> SetContentLayout(This,row,col,nLayout) ) 

#define IGcadTable_GetOverride(This,nRow,nCol,nContent,pValue)	\
    ( (This)->lpVtbl -> GetOverride(This,nRow,nCol,nContent,pValue) ) 

#define IGcadTable_SetOverride(This,nRow,nCol,nContent,nProp)	\
    ( (This)->lpVtbl -> SetOverride(This,nRow,nCol,nContent,nProp) ) 

#define IGcadTable_GetGridLineStyle(This,nRow,nCol,nGridLineType,pStyle)	\
    ( (This)->lpVtbl -> GetGridLineStyle(This,nRow,nCol,nGridLineType,pStyle) ) 

#define IGcadTable_SetGridLineStyle(This,nRow,nCol,nGridLineTypes,nLineStyle)	\
    ( (This)->lpVtbl -> SetGridLineStyle(This,nRow,nCol,nGridLineTypes,nLineStyle) ) 

#define IGcadTable_InsertRowsAndInherit(This,nIndex,nInheritFrom,nNumRows)	\
    ( (This)->lpVtbl -> InsertRowsAndInherit(This,nIndex,nInheritFrom,nNumRows) ) 

#define IGcadTable_InsertColumnsAndInherit(This,col,nInheritFrom,nNumCols)	\
    ( (This)->lpVtbl -> InsertColumnsAndInherit(This,col,nInheritFrom,nNumCols) ) 

#define IGcadTable_GetHasFormula(This,nRow,nCol,nContent,bValue)	\
    ( (This)->lpVtbl -> GetHasFormula(This,nRow,nCol,nContent,bValue) ) 

#define IGcadTable_GetFormula(This,nRow,nCol,nContent,pszFormula)	\
    ( (This)->lpVtbl -> GetFormula(This,nRow,nCol,nContent,pszFormula) ) 

#define IGcadTable_SetFormula(This,nRow,nCol,nContent,pszFormula)	\
    ( (This)->lpVtbl -> SetFormula(This,nRow,nCol,nContent,pszFormula) ) 

#define IGcadTable_IsContentEditable(This,nRow,nCol,bValue)	\
    ( (This)->lpVtbl -> IsContentEditable(This,nRow,nCol,bValue) ) 

#define IGcadTable_IsFormatEditable(This,nRow,nCol,bValue)	\
    ( (This)->lpVtbl -> IsFormatEditable(This,nRow,nCol,bValue) ) 

#define IGcadTable_SetCellState(This,nRow,nCol,nState)	\
    ( (This)->lpVtbl -> SetCellState(This,nRow,nCol,nState) ) 

#define IGcadTable_GetCellState(This,nRow,nCol,nState)	\
    ( (This)->lpVtbl -> GetCellState(This,nRow,nCol,nState) ) 

#define IGcadTable_EnableMergeAll(This,nRow,nCol,bEnable)	\
    ( (This)->lpVtbl -> EnableMergeAll(This,nRow,nCol,bEnable) ) 

#define IGcadTable_IsMergeAllEnabled(This,nRow,nCol,bValue)	\
    ( (This)->lpVtbl -> IsMergeAllEnabled(This,nRow,nCol,bValue) ) 

#define IGcadTable_GetColumnName(This,nIndex,Name)	\
    ( (This)->lpVtbl -> GetColumnName(This,nIndex,Name) ) 

#define IGcadTable_SetColumnName(This,nIndex,Name)	\
    ( (This)->lpVtbl -> SetColumnName(This,nIndex,Name) ) 

#define IGcadTable_SetToolTip(This,nRow,nCol,tip)	\
    ( (This)->lpVtbl -> SetToolTip(This,nRow,nCol,tip) ) 

#define IGcadTable_GetBlockAttributeValue2(This,row,col,nContent,attdefId,bstrValue)	\
    ( (This)->lpVtbl -> GetBlockAttributeValue2(This,row,col,nContent,attdefId,bstrValue) ) 

#define IGcadTable_SetBlockAttributeValue2(This,row,col,nContent,attdefId,bstrValue)	\
    ( (This)->lpVtbl -> SetBlockAttributeValue2(This,row,col,nContent,attdefId,bstrValue) ) 

#define IGcadTable_GetFieldId2(This,nRow,nCol,nContent,pAcDbObjectId)	\
    ( (This)->lpVtbl -> GetFieldId2(This,nRow,nCol,nContent,pAcDbObjectId) ) 

#define IGcadTable_SetFieldId2(This,nRow,nCol,nContent,acDbObjectId,nflag)	\
    ( (This)->lpVtbl -> SetFieldId2(This,nRow,nCol,nContent,acDbObjectId,nflag) ) 

#define IGcadTable_GetBlockTableRecordId2(This,nRow,nCol,nContent,pAcDbObjectId)	\
    ( (This)->lpVtbl -> GetBlockTableRecordId2(This,nRow,nCol,nContent,pAcDbObjectId) ) 

#define IGcadTable_SetBlockTableRecordId2(This,nRow,nCol,nContent,blkId,autoFit)	\
    ( (This)->lpVtbl -> SetBlockTableRecordId2(This,nRow,nCol,nContent,blkId,autoFit) ) 

#define IGcadTable_get_BreaksEnabled(This,bEnabled)	\
    ( (This)->lpVtbl -> get_BreaksEnabled(This,bEnabled) ) 

#define IGcadTable_put_BreaksEnabled(This,bEnabled)	\
    ( (This)->lpVtbl -> put_BreaksEnabled(This,bEnabled) ) 

#define IGcadTable_get_RepeatTopLabels(This,bEnabled)	\
    ( (This)->lpVtbl -> get_RepeatTopLabels(This,bEnabled) ) 

#define IGcadTable_put_RepeatTopLabels(This,bEnabled)	\
    ( (This)->lpVtbl -> put_RepeatTopLabels(This,bEnabled) ) 

#define IGcadTable_get_RepeatBottomLabels(This,bEnabled)	\
    ( (This)->lpVtbl -> get_RepeatBottomLabels(This,bEnabled) ) 

#define IGcadTable_put_RepeatBottomLabels(This,bEnabled)	\
    ( (This)->lpVtbl -> put_RepeatBottomLabels(This,bEnabled) ) 

#define IGcadTable_get_TableBreakFlowDirection(This,pDir)	\
    ( (This)->lpVtbl -> get_TableBreakFlowDirection(This,pDir) ) 

#define IGcadTable_put_TableBreakFlowDirection(This,pDir)	\
    ( (This)->lpVtbl -> put_TableBreakFlowDirection(This,pDir) ) 

#define IGcadTable_get_AllowManualPositions(This,bEnabled)	\
    ( (This)->lpVtbl -> get_AllowManualPositions(This,bEnabled) ) 

#define IGcadTable_put_AllowManualPositions(This,bEnabled)	\
    ( (This)->lpVtbl -> put_AllowManualPositions(This,bEnabled) ) 

#define IGcadTable_get_AllowManualHeights(This,bEnabled)	\
    ( (This)->lpVtbl -> get_AllowManualHeights(This,bEnabled) ) 

#define IGcadTable_put_AllowManualHeights(This,bEnabled)	\
    ( (This)->lpVtbl -> put_AllowManualHeights(This,bEnabled) ) 

#define IGcadTable_get_TableBreakHeight(This,pHeight)	\
    ( (This)->lpVtbl -> get_TableBreakHeight(This,pHeight) ) 

#define IGcadTable_put_TableBreakHeight(This,pHeight)	\
    ( (This)->lpVtbl -> put_TableBreakHeight(This,pHeight) ) 

#define IGcadTable_get_BreakSpacing(This,pSpacing)	\
    ( (This)->lpVtbl -> get_BreakSpacing(This,pSpacing) ) 

#define IGcadTable_put_BreakSpacing(This,pSpacing)	\
    ( (This)->lpVtbl -> put_BreakSpacing(This,pSpacing) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetCellTextStyle_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [retval][out] */ BSTR *bstrName);


void __RPC_STUB IGcadTable_GetCellTextStyle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCellTextStyle_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ BSTR bstrName);


void __RPC_STUB IGcadTable_SetCellTextStyle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetCellTextHeight_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [retval][out] */ double *pTextHeight);


void __RPC_STUB IGcadTable_GetCellTextHeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCellTextHeight_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ double TextHeight);


void __RPC_STUB IGcadTable_SetCellTextHeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetTextRotation_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [retval][out] */ GcRotationAngle *TextRotation);


void __RPC_STUB IGcadTable_GetTextRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetTextRotation_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ GcRotationAngle TextRotation);


void __RPC_STUB IGcadTable_SetTextRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetAutoScale_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [retval][out] */ VARIANT_BOOL *bValue);


void __RPC_STUB IGcadTable_GetAutoScale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetAutoScale_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ VARIANT_BOOL *bValue);


void __RPC_STUB IGcadTable_SetAutoScale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetBlockTableRecordId_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [retval][out] */ LONG_PTR *blkId);


void __RPC_STUB IGcadTable_GetBlockTableRecordId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetBlockTableRecordId_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ LONG_PTR blkId,
    /* [in] */ VARIANT_BOOL bAutoFit);


void __RPC_STUB IGcadTable_SetBlockTableRecordId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetBlockScale_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [retval][out] */ double *blkScale);


void __RPC_STUB IGcadTable_GetBlockScale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetBlockScale_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ double blkScale);


void __RPC_STUB IGcadTable_SetBlockScale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetBlockRotation_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [retval][out] */ double *blkRotation);


void __RPC_STUB IGcadTable_GetBlockRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetBlockRotation_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ double blkRotation);


void __RPC_STUB IGcadTable_SetBlockRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetBlockAttributeValue_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ LONG_PTR attdefId,
    /* [retval][out] */ BSTR *bstrValue);


void __RPC_STUB IGcadTable_GetBlockAttributeValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetBlockAttributeValue_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ LONG_PTR attdefId,
    /* [in] */ BSTR bstrValue);


void __RPC_STUB IGcadTable_SetBlockAttributeValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetCellGridLineWeight_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ GcCellEdgeMask edge,
    /* [retval][out] */ GCAD_LWEIGHT *plineweight);


void __RPC_STUB IGcadTable_GetCellGridLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCellGridLineWeight_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ int edges,
    /* [in] */ GCAD_LWEIGHT Lineweight);


void __RPC_STUB IGcadTable_SetCellGridLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetCellGridColor_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ GcCellEdgeMask edge,
    /* [retval][out] */ IGcadGcCmColor **pColor);


void __RPC_STUB IGcadTable_GetCellGridColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCellGridColor_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ int edges,
    /* [in] */ IGcadGcCmColor *pColor);


void __RPC_STUB IGcadTable_SetCellGridColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetCellGridVisibility_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ GcCellEdgeMask edge,
    /* [retval][out] */ VARIANT_BOOL *bValue);


void __RPC_STUB IGcadTable_GetCellGridVisibility_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCellGridVisibility_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ int edges,
    /* [in] */ VARIANT_BOOL bValue);


void __RPC_STUB IGcadTable_SetCellGridVisibility_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_InsertColumns_Proxy( 
    IGcadTable * This,
    /* [in] */ int col,
    /* [in] */ double Width,
    /* [in] */ int cols);


void __RPC_STUB IGcadTable_InsertColumns_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_DeleteColumns_Proxy( 
    IGcadTable * This,
    /* [in] */ int col,
    /* [in] */ int cols);


void __RPC_STUB IGcadTable_DeleteColumns_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_InsertRows_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ double Height,
    /* [in] */ int Rows);


void __RPC_STUB IGcadTable_InsertRows_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_DeleteRows_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int Rows);


void __RPC_STUB IGcadTable_DeleteRows_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_MergeCells_Proxy( 
    IGcadTable * This,
    /* [in] */ int minRow,
    /* [in] */ int maxRow,
    /* [in] */ int minCol,
    /* [in] */ int maxCol);


void __RPC_STUB IGcadTable_MergeCells_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_UnmergeCells_Proxy( 
    IGcadTable * This,
    /* [in] */ int minRow,
    /* [in] */ int maxRow,
    /* [in] */ int minCol,
    /* [in] */ int maxCol);


void __RPC_STUB IGcadTable_UnmergeCells_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_IsMergedCell_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [out] */ int *minRow,
    /* [out] */ int *maxRow,
    /* [out] */ int *minCol,
    /* [out] */ int *maxCol,
    /* [retval][out] */ VARIANT_BOOL *pbValue);


void __RPC_STUB IGcadTable_IsMergedCell_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetFieldId_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [retval][out] */ LONG_PTR *fieldId);


void __RPC_STUB IGcadTable_GetFieldId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetFieldId_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ LONG_PTR fieldId);


void __RPC_STUB IGcadTable_SetFieldId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GenerateLayout_Proxy( 
    IGcadTable * This);


void __RPC_STUB IGcadTable_GenerateLayout_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_RecomputeTableBlock_Proxy( 
    IGcadTable * This,
    /* [in] */ VARIANT_BOOL bForceUpdate);


void __RPC_STUB IGcadTable_RecomputeTableBlock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_HitTest_Proxy( 
    IGcadTable * This,
    /* [in] */ VARIANT wpt,
    /* [in] */ VARIANT wviewVec,
    /* [out] */ int *resultRowIndex,
    /* [out] */ int *resultColumnIndex,
    /* [retval][out] */ VARIANT_BOOL *bReturn);


void __RPC_STUB IGcadTable_HitTest_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_Select_Proxy( 
    IGcadTable * This,
    /* [in] */ VARIANT wpt,
    /* [in] */ VARIANT wvwVec,
    /* [in] */ VARIANT wvwxVec,
    /* [in] */ double wxaper,
    /* [in] */ double wyaper,
    /* [in] */ VARIANT_BOOL allowOutside,
    /* [out] */ int *resultRowIndex,
    /* [out] */ int *resultColumnIndex);


void __RPC_STUB IGcadTable_Select_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SelectSubRegion_Proxy( 
    IGcadTable * This,
    /* [in] */ VARIANT wpt1,
    /* [in] */ VARIANT wpt2,
    /* [in] */ VARIANT wvwVec,
    /* [in] */ VARIANT wvwxVec,
    /* [in] */ GcSelectType seltype,
    /* [in] */ VARIANT_BOOL bIncludeCurrentSelection,
    /* [out] */ int *rowMin,
    /* [out] */ int *rowMax,
    /* [out] */ int *colMin,
    /* [out] */ int *colMax);


void __RPC_STUB IGcadTable_SelectSubRegion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_ReselectSubRegion_Proxy( 
    IGcadTable * This);


void __RPC_STUB IGcadTable_ReselectSubRegion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetSubSelection_Proxy( 
    IGcadTable * This,
    /* [out] */ int *rowMin,
    /* [out] */ int *rowMax,
    /* [out] */ int *colMin,
    /* [out] */ int *colMax);


void __RPC_STUB IGcadTable_GetSubSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetSubSelection_Proxy( 
    IGcadTable * This,
    /* [in] */ int rowMin,
    /* [in] */ int rowMax,
    /* [in] */ int colMin,
    /* [in] */ int colMax);


void __RPC_STUB IGcadTable_SetSubSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_ClearSubSelection_Proxy( 
    IGcadTable * This);


void __RPC_STUB IGcadTable_ClearSubSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_get_HasSubSelection_Proxy( 
    IGcadTable * This,
    /* [retval][out] */ VARIANT_BOOL *pbValue);


void __RPC_STUB IGcadTable_get_HasSubSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_get_RegenerateTableSuppressed_Proxy( 
    IGcadTable * This,
    /* [retval][out] */ VARIANT_BOOL *bValue);


void __RPC_STUB IGcadTable_get_RegenerateTableSuppressed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_put_RegenerateTableSuppressed_Proxy( 
    IGcadTable * This,
    /* [in] */ VARIANT_BOOL bValue);


void __RPC_STUB IGcadTable_put_RegenerateTableSuppressed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetDataType_Proxy( 
    IGcadTable * This,
    /* [in] */ GcRowType rowType,
    /* [out] */ GcValueDataType *pDataType,
    /* [out] */ GcValueUnitType *pUnitType);


void __RPC_STUB IGcadTable_GetDataType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetDataType_Proxy( 
    IGcadTable * This,
    /* [in] */ int rowTypes,
    /* [in] */ GcValueDataType dataType,
    /* [in] */ GcValueUnitType unitType);


void __RPC_STUB IGcadTable_SetDataType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetFormat_Proxy( 
    IGcadTable * This,
    /* [in] */ GcRowType rowType,
    /* [retval][out] */ BSTR *pFormat);


void __RPC_STUB IGcadTable_GetFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetFormat_Proxy( 
    IGcadTable * This,
    /* [in] */ int rowTypes,
    BSTR pFormat);


void __RPC_STUB IGcadTable_SetFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_FormatValue_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    GcFormatOption nOption,
    BSTR *pVal);


void __RPC_STUB IGcadTable_FormatValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetCellDataType_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [out] */ GcValueDataType *pDataType,
    /* [out] */ GcValueUnitType *pUnitType);


void __RPC_STUB IGcadTable_GetCellDataType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCellDataType_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    GcValueDataType dataType,
    GcValueUnitType unitType);


void __RPC_STUB IGcadTable_SetCellDataType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetCellFormat_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [retval][out] */ BSTR *pFormat);


void __RPC_STUB IGcadTable_GetCellFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCellFormat_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    BSTR pFormat);


void __RPC_STUB IGcadTable_SetCellFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetCellValue_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IGcadTable_GetCellValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCellValue_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    VARIANT val);


void __RPC_STUB IGcadTable_SetCellValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCellValueFromText_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ BSTR val,
    /* [in] */ GcParseOption nOption);


void __RPC_STUB IGcadTable_SetCellValueFromText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_ResetCellValue_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col);


void __RPC_STUB IGcadTable_ResetCellValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_IsEmpty_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [retval][out] */ VARIANT_BOOL *bValue);


void __RPC_STUB IGcadTable_IsEmpty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_CreateContent_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nIndex,
    /* [retval][out] */ int *pInt);


void __RPC_STUB IGcadTable_CreateContent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_MoveContent_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nFromIndex,
    /* [in] */ int nToIndex);


void __RPC_STUB IGcadTable_MoveContent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_DeleteContent_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol);


void __RPC_STUB IGcadTable_DeleteContent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetValue_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ VARIANT *pAcValue);


void __RPC_STUB IGcadTable_GetValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetValue_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ VARIANT acValue);


void __RPC_STUB IGcadTable_SetValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetValueFromText_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ BSTR szText,
    /* [in] */ GcParseOption nOption);


void __RPC_STUB IGcadTable_SetValueFromText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetDataFormat_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ BSTR *pValue);


void __RPC_STUB IGcadTable_GetDataFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetDataFormat_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ BSTR szFormat);


void __RPC_STUB IGcadTable_SetDataFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetTextString_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ BSTR *pTextString);


void __RPC_STUB IGcadTable_GetTextString_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetTextString_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ BSTR Text);


void __RPC_STUB IGcadTable_SetTextString_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetCustomData_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ BSTR szKey,
    /* [out] */ VARIANT *pData);


void __RPC_STUB IGcadTable_GetCustomData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCustomData_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ BSTR szKey,
    /* [in] */ VARIANT data);


void __RPC_STUB IGcadTable_SetCustomData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetCellStyle_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [retval][out] */ BSTR *pCellStyle);


void __RPC_STUB IGcadTable_GetCellStyle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCellStyle_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ BSTR szCellStyle);


void __RPC_STUB IGcadTable_SetCellStyle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetContentColor2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ IGcadGcCmColor **pColor);


void __RPC_STUB IGcadTable_GetContentColor2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetContentColor2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ IGcadGcCmColor *pColor);


void __RPC_STUB IGcadTable_SetContentColor2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetDataType2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [out] */ GcValueDataType *pDataType,
    /* [out] */ GcValueUnitType *pUnitType);


void __RPC_STUB IGcadTable_GetDataType2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetDataType2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ GcValueDataType dataType,
    /* [in] */ GcValueUnitType unitType);


void __RPC_STUB IGcadTable_SetDataType2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetTextStyle2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ BSTR *pbstrStyleName);


void __RPC_STUB IGcadTable_GetTextStyle2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetTextStyle2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ BSTR bstrStyleName);


void __RPC_STUB IGcadTable_SetTextStyle2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetTextHeight2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ double *pHeight);


void __RPC_STUB IGcadTable_GetTextHeight2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetTextHeight2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ double Height);


void __RPC_STUB IGcadTable_SetTextHeight2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetRotation_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ double *pValue);


void __RPC_STUB IGcadTable_GetRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetRotation_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ double Value);


void __RPC_STUB IGcadTable_SetRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetAutoScale2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ VARIANT_BOOL *bAutoScale);


void __RPC_STUB IGcadTable_GetAutoScale2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetAutoScale2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ VARIANT_BOOL bAutoFit);


void __RPC_STUB IGcadTable_SetAutoScale2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetScale_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ double *pScale);


void __RPC_STUB IGcadTable_GetScale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetScale_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ double scale);


void __RPC_STUB IGcadTable_SetScale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_RemoveAllOverrides_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol);


void __RPC_STUB IGcadTable_RemoveAllOverrides_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetGridLineWeight2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcGridLineType nGridLineType,
    /* [retval][out] */ GCAD_LWEIGHT *plineweight);


void __RPC_STUB IGcadTable_GetGridLineWeight2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetGridLineWeight2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcGridLineType nGridLineType,
    /* [in] */ GCAD_LWEIGHT Lineweight);


void __RPC_STUB IGcadTable_SetGridLineWeight2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetGridColor2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcGridLineType nGridLineType,
    /* [retval][out] */ IGcadGcCmColor **pColor);


void __RPC_STUB IGcadTable_GetGridColor2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetGridColor2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcGridLineType nGridLineType,
    /* [in] */ IGcadGcCmColor *pColor);


void __RPC_STUB IGcadTable_SetGridColor2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetGridVisibility2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcGridLineType nGridLineType,
    /* [retval][out] */ VARIANT_BOOL *bVisible);


void __RPC_STUB IGcadTable_GetGridVisibility2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetGridVisibility2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcGridLineType nGridLineType,
    /* [in] */ VARIANT_BOOL bVisible);


void __RPC_STUB IGcadTable_SetGridVisibility2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetGridDoubleLineSpacing_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcGridLineType nGridLineType,
    /* [retval][out] */ double *pValue);


void __RPC_STUB IGcadTable_GetGridDoubleLineSpacing_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetGridDoubleLineSpacing_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcGridLineType nGridLineType,
    /* [in] */ double fSpacing);


void __RPC_STUB IGcadTable_SetGridDoubleLineSpacing_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_put_EnableBreak_Proxy( 
    IGcadTable * This,
    /* [in] */ VARIANT_BOOL rhs);


void __RPC_STUB IGcadTable_put_EnableBreak_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetBreakHeight_Proxy( 
    IGcadTable * This,
    /* [in] */ int nIndex,
    /* [retval][out] */ double *pHeight);


void __RPC_STUB IGcadTable_GetBreakHeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetBreakHeight_Proxy( 
    IGcadTable * This,
    /* [in] */ int nIndex,
    /* [in] */ double Height);


void __RPC_STUB IGcadTable_SetBreakHeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetContentType_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [retval][out] */ GcCellContentType *pType);


void __RPC_STUB IGcadTable_GetContentType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetMargin_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcCellMargin nMargin,
    /* [retval][out] */ double *pValue);


void __RPC_STUB IGcadTable_GetMargin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetMargin_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcCellMargin nMargins,
    /* [in] */ double fMargin);


void __RPC_STUB IGcadTable_SetMargin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetContentLayout_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [retval][out] */ GcCellContentLayout *pLayout);


void __RPC_STUB IGcadTable_GetContentLayout_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetContentLayout_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ GcCellContentLayout nLayout);


void __RPC_STUB IGcadTable_SetContentLayout_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetOverride_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ GcCellProperty *pValue);


void __RPC_STUB IGcadTable_GetOverride_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetOverride_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ GcCellProperty nProp);


void __RPC_STUB IGcadTable_SetOverride_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetGridLineStyle_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcGridLineType nGridLineType,
    /* [retval][out] */ GcGridLineStyle *pStyle);


void __RPC_STUB IGcadTable_GetGridLineStyle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetGridLineStyle_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcGridLineType nGridLineTypes,
    /* [in] */ GcGridLineStyle nLineStyle);


void __RPC_STUB IGcadTable_SetGridLineStyle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_InsertRowsAndInherit_Proxy( 
    IGcadTable * This,
    /* [in] */ int nIndex,
    /* [in] */ int nInheritFrom,
    /* [in] */ int nNumRows);


void __RPC_STUB IGcadTable_InsertRowsAndInherit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_InsertColumnsAndInherit_Proxy( 
    IGcadTable * This,
    /* [in] */ int col,
    /* [in] */ int nInheritFrom,
    /* [in] */ int nNumCols);


void __RPC_STUB IGcadTable_InsertColumnsAndInherit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetHasFormula_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ VARIANT_BOOL *bValue);


void __RPC_STUB IGcadTable_GetHasFormula_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetFormula_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ BSTR *pszFormula);


void __RPC_STUB IGcadTable_GetFormula_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetFormula_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ BSTR pszFormula);


void __RPC_STUB IGcadTable_SetFormula_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_IsContentEditable_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [retval][out] */ VARIANT_BOOL *bValue);


void __RPC_STUB IGcadTable_IsContentEditable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_IsFormatEditable_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [retval][out] */ VARIANT_BOOL *bValue);


void __RPC_STUB IGcadTable_IsFormatEditable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetCellState_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ GcCellState nState);


void __RPC_STUB IGcadTable_SetCellState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetCellState_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [retval][out] */ GcCellState *nState);


void __RPC_STUB IGcadTable_GetCellState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_EnableMergeAll_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ VARIANT_BOOL bEnable);


void __RPC_STUB IGcadTable_EnableMergeAll_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_IsMergeAllEnabled_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [retval][out] */ VARIANT_BOOL *bValue);


void __RPC_STUB IGcadTable_IsMergeAllEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetColumnName_Proxy( 
    IGcadTable * This,
    /* [in] */ int nIndex,
    /* [retval][out] */ BSTR *Name);


void __RPC_STUB IGcadTable_GetColumnName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetColumnName_Proxy( 
    IGcadTable * This,
    /* [in] */ int nIndex,
    /* [in] */ BSTR Name);


void __RPC_STUB IGcadTable_SetColumnName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetToolTip_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ BSTR tip);


void __RPC_STUB IGcadTable_SetToolTip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetBlockAttributeValue2_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ int nContent,
    /* [in] */ LONG_PTR attdefId,
    /* [retval][out] */ BSTR *bstrValue);


void __RPC_STUB IGcadTable_GetBlockAttributeValue2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetBlockAttributeValue2_Proxy( 
    IGcadTable * This,
    /* [in] */ int row,
    /* [in] */ int col,
    /* [in] */ int nContent,
    /* [in] */ LONG_PTR attdefId,
    /* [in] */ BSTR bstrValue);


void __RPC_STUB IGcadTable_SetBlockAttributeValue2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetFieldId2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ LONG_PTR *pAcDbObjectId);


void __RPC_STUB IGcadTable_GetFieldId2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetFieldId2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ LONG_PTR acDbObjectId,
    /* [in] */ GcCellOption nflag);


void __RPC_STUB IGcadTable_SetFieldId2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE IGcadTable_GetBlockTableRecordId2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [retval][out] */ LONG_PTR *pAcDbObjectId);


void __RPC_STUB IGcadTable_GetBlockTableRecordId2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE IGcadTable_SetBlockTableRecordId2_Proxy( 
    IGcadTable * This,
    /* [in] */ int nRow,
    /* [in] */ int nCol,
    /* [in] */ int nContent,
    /* [in] */ LONG_PTR blkId,
    /* [in] */ VARIANT_BOOL autoFit);


void __RPC_STUB IGcadTable_SetBlockTableRecordId2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_get_BreaksEnabled_Proxy( 
    IGcadTable * This,
    /* [retval][out] */ VARIANT_BOOL *bEnabled);


void __RPC_STUB IGcadTable_get_BreaksEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_put_BreaksEnabled_Proxy( 
    IGcadTable * This,
    /* [in] */ VARIANT_BOOL bEnabled);


void __RPC_STUB IGcadTable_put_BreaksEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_get_RepeatTopLabels_Proxy( 
    IGcadTable * This,
    /* [retval][out] */ VARIANT_BOOL *bEnabled);


void __RPC_STUB IGcadTable_get_RepeatTopLabels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_put_RepeatTopLabels_Proxy( 
    IGcadTable * This,
    /* [in] */ VARIANT_BOOL bEnabled);


void __RPC_STUB IGcadTable_put_RepeatTopLabels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_get_RepeatBottomLabels_Proxy( 
    IGcadTable * This,
    /* [retval][out] */ VARIANT_BOOL *bEnabled);


void __RPC_STUB IGcadTable_get_RepeatBottomLabels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_put_RepeatBottomLabels_Proxy( 
    IGcadTable * This,
    /* [in] */ VARIANT_BOOL bEnabled);


void __RPC_STUB IGcadTable_put_RepeatBottomLabels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_get_TableBreakFlowDirection_Proxy( 
    IGcadTable * This,
    /* [retval][out] */ GcTableFlowDirection *pDir);


void __RPC_STUB IGcadTable_get_TableBreakFlowDirection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_put_TableBreakFlowDirection_Proxy( 
    IGcadTable * This,
    /* [in] */ GcTableFlowDirection pDir);


void __RPC_STUB IGcadTable_put_TableBreakFlowDirection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_get_AllowManualPositions_Proxy( 
    IGcadTable * This,
    /* [retval][out] */ VARIANT_BOOL *bEnabled);


void __RPC_STUB IGcadTable_get_AllowManualPositions_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_put_AllowManualPositions_Proxy( 
    IGcadTable * This,
    /* [in] */ VARIANT_BOOL bEnabled);


void __RPC_STUB IGcadTable_put_AllowManualPositions_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_get_AllowManualHeights_Proxy( 
    IGcadTable * This,
    /* [retval][out] */ VARIANT_BOOL *bEnabled);


void __RPC_STUB IGcadTable_get_AllowManualHeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_put_AllowManualHeights_Proxy( 
    IGcadTable * This,
    /* [in] */ VARIANT_BOOL bEnabled);


void __RPC_STUB IGcadTable_put_AllowManualHeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_get_TableBreakHeight_Proxy( 
    IGcadTable * This,
    /* [retval][out] */ double *pHeight);


void __RPC_STUB IGcadTable_get_TableBreakHeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_put_TableBreakHeight_Proxy( 
    IGcadTable * This,
    /* [in] */ double pHeight);


void __RPC_STUB IGcadTable_put_TableBreakHeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_get_BreakSpacing_Proxy( 
    IGcadTable * This,
    /* [retval][out] */ double *pSpacing);


void __RPC_STUB IGcadTable_get_BreakSpacing_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadTable_put_BreakSpacing_Proxy( 
    IGcadTable * This,
    /* [in] */ double pSpacing);


void __RPC_STUB IGcadTable_put_BreakSpacing_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGcadTable_INTERFACE_DEFINED__ */


#ifndef __IGcadDimArcLength_INTERFACE_DEFINED__
#define __IGcadDimArcLength_INTERFACE_DEFINED__

/* interface IGcadDimArcLength */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDimArcLength;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6BE0895F-AB23-4095-8180-0BBD8E790138")
    IGcadDimArcLength : public IGcadDimension
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnits( 
            /* [retval][out] */ VARIANT_BOOL *bAlternate) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnits( 
            /* [in] */ VARIANT_BOOL bAlternate) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *precision) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsPrecision( 
            /* [in] */ GcDimPrecision precision) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsScale( 
            /* [retval][out] */ GCAD_NOUNITS *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsScale( 
            /* [in] */ GCAD_NOUNITS scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltRoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltRoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTolerancePrecision( 
            /* [retval][out] */ GcDimPrecision *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTolerancePrecision( 
            /* [in] */ GcDimPrecision Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsFormat( 
            /* [retval][out] */ GcDimUnits *Units) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsFormat( 
            /* [in] */ GcDimUnits Units) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextPrefix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextPrefix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextSuffix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextSuffix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PrimaryUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *Prec) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PrimaryUnitsPrecision( 
            /* [in] */ GcDimPrecision Prec) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineExtend( 
            /* [retval][out] */ double *extend) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineExtend( 
            /* [in] */ double extend) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineExtend( 
            /* [retval][out] */ double *extend) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineExtend( 
            /* [in] */ double extend) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Fit( 
            /* [retval][out] */ GcDimFit *fittype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Fit( 
            /* [in] */ GcDimFit fittype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FractionFormat( 
            /* [retval][out] */ GcDimFractionType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FractionFormat( 
            /* [in] */ GcDimFractionType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalTextPosition( 
            /* [retval][out] */ GcDimHorizontalJustification *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HorizontalTextPosition( 
            /* [in] */ GcDimHorizontalJustification Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LinearScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LinearScaleFactor( 
            /* [in] */ GCAD_NOUNITS Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnitsFormat( 
            /* [retval][out] */ GcDimLUnits *format) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UnitsFormat( 
            /* [in] */ GcDimLUnits format) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *lweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT lweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine1Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine1Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLine2Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLine2Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Suppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Suppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForceLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForceLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextOutsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextOutsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtensionLineOffset( 
            /* [retval][out] */ double *Offset) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtensionLineOffset( 
            /* [in] */ double Offset) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *weight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT weight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Type( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Type( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Measurement( 
            /* [retval][out] */ double *bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead1Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead1Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Arrowhead2Block( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Arrowhead2Block( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArcPoint( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArcPoint( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Point( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Point( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Point( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Point( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CenterPoint( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CenterPoint( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Leader1Point( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Leader1Point( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Leader2Point( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Leader2Point( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IsPartial( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IsPartial( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArcStartParam( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArcStartParam( 
            /* [in] */ double pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArcEndParam( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArcEndParam( 
            /* [in] */ double pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HasLeader( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HasLeader( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SymbolPosition( 
            /* [retval][out] */ GcDimArcLengthSymbol *Position) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SymbolPosition( 
            /* [in] */ GcDimArcLengthSymbol Position) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine1Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine1Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLine2Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLine2Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLenSuppress( 
            /* [retval][out] */ VARIANT_BOOL *bFixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLenSuppress( 
            /* [in] */ VARIANT_BOOL bFixedLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtLineFixedLen( 
            /* [retval][out] */ double *FixedLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ExtLineFixedLen( 
            /* [in] */ double FixedLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SubUnitsSuffix( 
            /* [retval][out] */ BSTR *suffix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SubUnitsSuffix( 
            /* [in] */ BSTR suffix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SubUnitsFactor( 
            /* [retval][out] */ double *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SubUnitsFactor( 
            /* [in] */ double factor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSubUnitsSuffix( 
            /* [retval][out] */ BSTR *suffix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSubUnitsSuffix( 
            /* [in] */ BSTR suffix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSubUnitsFactor( 
            /* [retval][out] */ double *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSubUnitsFactor( 
            /* [in] */ double factor) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDimArcLengthVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDimArcLength * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDimArcLength * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDimArcLength * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDimArcLength * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDimArcLength * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDimArcLength * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDimArcLength * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDimArcLength * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDimArcLength * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadDimArcLength * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadDimArcLength * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadDimArcLength * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadDimArcLength * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadDimArcLength * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadDimArcLength * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPosition )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT *textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPosition )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRotation )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRotation )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextOverride)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOverride )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextOverride)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOverride )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DecimalSeparator)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DecimalSeparator )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DecimalSeparator)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DecimalSeparator )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGap )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGap )( 
            IGcadDimArcLength * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrefix )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrefix )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextSuffix )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextSuffix )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_VerticalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalTextPosition )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimVerticalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_VerticalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalTextPosition )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimVerticalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TolerancePrecision )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TolerancePrecision )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceHeightScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceHeightScale )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceHeightScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceHeightScale )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceLowerLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceLowerLimit )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceLowerLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceLowerLimit )( 
            IGcadDimArcLength * This,
            /* [in] */ double lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextMovement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextMovement )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimTextMovement *Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextMovement)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextMovement )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimTextMovement Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceDisplay )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimToleranceMethod *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceDisplay )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimToleranceMethod method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceJustification)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceJustification )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimToleranceJustify *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceJustification)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceJustification )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimToleranceJustify method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceUpperLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceUpperLimit )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceUpperLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceUpperLimit )( 
            IGcadDimArcLength * This,
            /* [in] */ double upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadDimArcLength * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressLeadingZeros )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressLeadingZeros )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressTrailingZeros )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressTrailingZeros )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressLeadingZeros )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressLeadingZeros )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressTrailingZeros )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressTrailingZeros )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFill )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFill )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFillColor )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFillColor )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DimTxtDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimTxtDirection )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *pbVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DimTxtDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimTxtDirection )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnits )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltUnits)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnits )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsPrecision )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsPrecision )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltUnitsScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsScale )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltUnitsScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsScale )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltRoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltRoundDistance )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltRoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltRoundDistance )( 
            IGcadDimArcLength * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltTolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTolerancePrecision )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimPrecision *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltTolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTolerancePrecision )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimPrecision Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltUnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsFormat )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimUnits *Units);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltUnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsFormat )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimUnits Units);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltTextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextPrefix )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltTextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextPrefix )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltTextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextSuffix )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltTextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextSuffix )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_DimensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineColor )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_DimensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineColor )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineColor )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineColor )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_PrimaryUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrimaryUnitsPrecision )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimPrecision *Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_PrimaryUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PrimaryUnitsPrecision )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimPrecision Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_DimensionLineExtend)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineExtend )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *extend);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_DimensionLineExtend)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineExtend )( 
            IGcadDimArcLength * This,
            /* [in] */ double extend);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtensionLineExtend)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineExtend )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *extend);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtensionLineExtend)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineExtend )( 
            IGcadDimArcLength * This,
            /* [in] */ double extend);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_Fit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fit )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimFit *fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_Fit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fit )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimFit fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_FractionFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FractionFormat )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimFractionType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_FractionFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FractionFormat )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimFractionType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_HorizontalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalTextPosition )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimHorizontalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_HorizontalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HorizontalTextPosition )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimHorizontalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_LinearScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinearScaleFactor )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_NOUNITS *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_LinearScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinearScaleFactor )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_NOUNITS Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_UnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnitsFormat )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimLUnits *format);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_UnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnitsFormat )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimLUnits format);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineWeight )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_LWEIGHT *lweight);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineWeight )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_LWEIGHT lweight);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_RoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RoundDistance )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_RoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RoundDistance )( 
            IGcadDimArcLength * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_DimLine1Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine1Suppress )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_DimLine1Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine1Suppress )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_DimLine2Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLine2Suppress )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_DimLine2Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLine2Suppress )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtLine1Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Suppress )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtLine1Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Suppress )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtLine2Suppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Suppress )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtLine2Suppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Suppress )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_DimLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLineInside )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_DimLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLineInside )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_TextInsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInsideAlign )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_TextInsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInsideAlign )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_TextInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInside )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_TextInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInside )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ForceLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForceLineInside )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ForceLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForceLineInside )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_TextOutsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOutsideAlign )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_TextOutsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOutsideAlign )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtensionLineOffset)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtensionLineOffset )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtensionLineOffset)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtensionLineOffset )( 
            IGcadDimArcLength * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressLeadingZeros )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressLeadingZeros )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressTrailingZeros )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressTrailingZeros )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroFeet )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroFeet )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroInches )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroInches )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressLeadingZeros )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressLeadingZeros )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressTrailingZeros )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressTrailingZeros )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroFeet )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroFeet )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroInches )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroInches )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_SuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroFeet )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_SuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroFeet )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_SuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroInches )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_SuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroInches )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroFeet )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroFeet )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroInches )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroInches )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_DimensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineWeight )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GCAD_LWEIGHT *weight);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_DimensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineWeight )( 
            IGcadDimArcLength * This,
            /* [in] */ GCAD_LWEIGHT weight);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadDimArcLength * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_Arrowhead1Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Type )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_Arrowhead1Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Type )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_Arrowhead2Type)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Type )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_Arrowhead2Type)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Type )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_Measurement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Measurement )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_Arrowhead1Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead1Block )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_Arrowhead1Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead1Block )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_Arrowhead2Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Arrowhead2Block )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_Arrowhead2Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Arrowhead2Block )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ArcPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArcPoint )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ArcPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArcPoint )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtLine1Point)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Point )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtLine1Point)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Point )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtLine2Point)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Point )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtLine2Point)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Point )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_CenterPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CenterPoint )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_CenterPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CenterPoint )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_Leader1Point)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Leader1Point )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_Leader1Point)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Leader1Point )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_Leader2Point)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Leader2Point )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_Leader2Point)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Leader2Point )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_IsPartial)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsPartial )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_IsPartial)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IsPartial )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ArcStartParam)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArcStartParam )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ArcStartParam)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArcStartParam )( 
            IGcadDimArcLength * This,
            /* [in] */ double pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ArcEndParam)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArcEndParam )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ArcEndParam)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArcEndParam )( 
            IGcadDimArcLength * This,
            /* [in] */ double pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_HasLeader)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasLeader )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_HasLeader)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HasLeader )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_SymbolPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SymbolPosition )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ GcDimArcLengthSymbol *Position);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_SymbolPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SymbolPosition )( 
            IGcadDimArcLength * This,
            /* [in] */ GcDimArcLengthSymbol Position);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_DimensionLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLinetype )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_DimensionLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLinetype )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtLine1Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine1Linetype )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtLine1Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine1Linetype )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtLine2Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLine2Linetype )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtLine2Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLine2Linetype )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtLineFixedLenSuppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLenSuppress )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ VARIANT_BOOL *bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtLineFixedLenSuppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLenSuppress )( 
            IGcadDimArcLength * This,
            /* [in] */ VARIANT_BOOL bFixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_ExtLineFixedLen)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtLineFixedLen )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_ExtLineFixedLen)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ExtLineFixedLen )( 
            IGcadDimArcLength * This,
            /* [in] */ double FixedLen);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_SubUnitsSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SubUnitsSuffix )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_SubUnitsSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SubUnitsSuffix )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_SubUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SubUnitsFactor )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_SubUnitsFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SubUnitsFactor )( 
            IGcadDimArcLength * This,
            /* [in] */ double factor);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltSubUnitsSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSubUnitsSuffix )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltSubUnitsSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSubUnitsSuffix )( 
            IGcadDimArcLength * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, get_AltSubUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSubUnitsFactor )( 
            IGcadDimArcLength * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimArcLength, put_AltSubUnitsFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSubUnitsFactor )( 
            IGcadDimArcLength * This,
            /* [in] */ double factor);
        
        END_INTERFACE
    } IGcadDimArcLengthVtbl;

    interface IGcadDimArcLength
    {
        CONST_VTBL struct IGcadDimArcLengthVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDimArcLength_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDimArcLength_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDimArcLength_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDimArcLength_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDimArcLength_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDimArcLength_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDimArcLength_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDimArcLength_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDimArcLength_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDimArcLength_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDimArcLength_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDimArcLength_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDimArcLength_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDimArcLength_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDimArcLength_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDimArcLength_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDimArcLength_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDimArcLength_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDimArcLength_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDimArcLength_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDimArcLength_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadDimArcLength_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadDimArcLength_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadDimArcLength_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadDimArcLength_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadDimArcLength_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadDimArcLength_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadDimArcLength_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadDimArcLength_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadDimArcLength_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadDimArcLength_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadDimArcLength_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadDimArcLength_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadDimArcLength_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadDimArcLength_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadDimArcLength_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadDimArcLength_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadDimArcLength_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadDimArcLength_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadDimArcLength_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadDimArcLength_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadDimArcLength_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadDimArcLength_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadDimArcLength_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadDimArcLength_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadDimArcLength_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadDimArcLength_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadDimArcLength_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadDimArcLength_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadDimArcLength_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadDimArcLength_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadDimArcLength_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadDimArcLength_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadDimArcLength_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadDimArcLength_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadDimArcLength_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadDimArcLength_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadDimArcLength_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadDimArcLength_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadDimArcLength_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadDimArcLength_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadDimArcLength_get_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> get_TextPosition(This,textPos) ) 

#define IGcadDimArcLength_put_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> put_TextPosition(This,textPos) ) 

#define IGcadDimArcLength_get_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_TextRotation(This,rotAngle) ) 

#define IGcadDimArcLength_put_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_TextRotation(This,rotAngle) ) 

#define IGcadDimArcLength_get_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextOverride(This,bstrText) ) 

#define IGcadDimArcLength_put_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextOverride(This,bstrText) ) 

#define IGcadDimArcLength_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadDimArcLength_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadDimArcLength_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadDimArcLength_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadDimArcLength_get_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> get_DecimalSeparator(This,character) ) 

#define IGcadDimArcLength_put_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> put_DecimalSeparator(This,character) ) 

#define IGcadDimArcLength_get_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> get_TextGap(This,Offset) ) 

#define IGcadDimArcLength_put_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> put_TextGap(This,Offset) ) 

#define IGcadDimArcLength_get_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_TextPrefix(This,prefix) ) 

#define IGcadDimArcLength_put_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_TextPrefix(This,prefix) ) 

#define IGcadDimArcLength_get_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_TextSuffix(This,suffix) ) 

#define IGcadDimArcLength_put_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_TextSuffix(This,suffix) ) 

#define IGcadDimArcLength_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadDimArcLength_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadDimArcLength_get_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_VerticalTextPosition(This,Type) ) 

#define IGcadDimArcLength_put_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_VerticalTextPosition(This,Type) ) 

#define IGcadDimArcLength_get_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> get_TolerancePrecision(This,precision) ) 

#define IGcadDimArcLength_put_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> put_TolerancePrecision(This,precision) ) 

#define IGcadDimArcLength_get_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> get_ToleranceHeightScale(This,scale) ) 

#define IGcadDimArcLength_put_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> put_ToleranceHeightScale(This,scale) ) 

#define IGcadDimArcLength_get_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> get_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimArcLength_put_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> put_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimArcLength_get_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> get_TextMovement(This,Move) ) 

#define IGcadDimArcLength_put_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> put_TextMovement(This,Move) ) 

#define IGcadDimArcLength_get_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceDisplay(This,method) ) 

#define IGcadDimArcLength_put_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceDisplay(This,method) ) 

#define IGcadDimArcLength_get_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceJustification(This,method) ) 

#define IGcadDimArcLength_put_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceJustification(This,method) ) 

#define IGcadDimArcLength_get_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> get_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimArcLength_put_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> put_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimArcLength_get_TextStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextStyle(This,style) ) 

#define IGcadDimArcLength_put_TextStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextStyle(This,style) ) 

#define IGcadDimArcLength_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadDimArcLength_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadDimArcLength_get_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimArcLength_put_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimArcLength_get_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimArcLength_put_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimArcLength_get_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimArcLength_put_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimArcLength_get_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimArcLength_put_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimArcLength_get_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> get_TextFill(This,bVal) ) 

#define IGcadDimArcLength_put_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> put_TextFill(This,bVal) ) 

#define IGcadDimArcLength_get_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> get_TextFillColor(This,color) ) 

#define IGcadDimArcLength_put_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> put_TextFillColor(This,color) ) 

#define IGcadDimArcLength_get_DimTxtDirection(This,pbVal)	\
    ( (This)->lpVtbl -> get_DimTxtDirection(This,pbVal) ) 

#define IGcadDimArcLength_put_DimTxtDirection(This,bVal)	\
    ( (This)->lpVtbl -> put_DimTxtDirection(This,bVal) ) 


#define IGcadDimArcLength_get_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> get_AltUnits(This,bAlternate) ) 

#define IGcadDimArcLength_put_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> put_AltUnits(This,bAlternate) ) 

#define IGcadDimArcLength_get_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> get_AltUnitsPrecision(This,precision) ) 

#define IGcadDimArcLength_put_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> put_AltUnitsPrecision(This,precision) ) 

#define IGcadDimArcLength_get_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> get_AltUnitsScale(This,scale) ) 

#define IGcadDimArcLength_put_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> put_AltUnitsScale(This,scale) ) 

#define IGcadDimArcLength_get_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_AltRoundDistance(This,Distance) ) 

#define IGcadDimArcLength_put_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_AltRoundDistance(This,Distance) ) 

#define IGcadDimArcLength_get_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> get_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimArcLength_put_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> put_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimArcLength_get_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> get_AltUnitsFormat(This,Units) ) 

#define IGcadDimArcLength_put_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> put_AltUnitsFormat(This,Units) ) 

#define IGcadDimArcLength_get_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextPrefix(This,prefix) ) 

#define IGcadDimArcLength_put_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextPrefix(This,prefix) ) 

#define IGcadDimArcLength_get_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextSuffix(This,prefix) ) 

#define IGcadDimArcLength_put_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextSuffix(This,prefix) ) 

#define IGcadDimArcLength_get_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_DimensionLineColor(This,Type) ) 

#define IGcadDimArcLength_put_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_DimensionLineColor(This,Type) ) 

#define IGcadDimArcLength_get_ExtensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_ExtensionLineColor(This,Type) ) 

#define IGcadDimArcLength_put_ExtensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_ExtensionLineColor(This,Type) ) 

#define IGcadDimArcLength_get_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> get_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimArcLength_put_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> put_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimArcLength_get_DimensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> get_DimensionLineExtend(This,extend) ) 

#define IGcadDimArcLength_put_DimensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> put_DimensionLineExtend(This,extend) ) 

#define IGcadDimArcLength_get_ExtensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> get_ExtensionLineExtend(This,extend) ) 

#define IGcadDimArcLength_put_ExtensionLineExtend(This,extend)	\
    ( (This)->lpVtbl -> put_ExtensionLineExtend(This,extend) ) 

#define IGcadDimArcLength_get_Fit(This,fittype)	\
    ( (This)->lpVtbl -> get_Fit(This,fittype) ) 

#define IGcadDimArcLength_put_Fit(This,fittype)	\
    ( (This)->lpVtbl -> put_Fit(This,fittype) ) 

#define IGcadDimArcLength_get_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> get_FractionFormat(This,Type) ) 

#define IGcadDimArcLength_put_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> put_FractionFormat(This,Type) ) 

#define IGcadDimArcLength_get_HorizontalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_HorizontalTextPosition(This,Type) ) 

#define IGcadDimArcLength_put_HorizontalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_HorizontalTextPosition(This,Type) ) 

#define IGcadDimArcLength_get_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> get_LinearScaleFactor(This,Type) ) 

#define IGcadDimArcLength_put_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> put_LinearScaleFactor(This,Type) ) 

#define IGcadDimArcLength_get_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> get_UnitsFormat(This,format) ) 

#define IGcadDimArcLength_put_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> put_UnitsFormat(This,format) ) 

#define IGcadDimArcLength_get_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> get_ExtensionLineWeight(This,lweight) ) 

#define IGcadDimArcLength_put_ExtensionLineWeight(This,lweight)	\
    ( (This)->lpVtbl -> put_ExtensionLineWeight(This,lweight) ) 

#define IGcadDimArcLength_get_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_RoundDistance(This,Distance) ) 

#define IGcadDimArcLength_put_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_RoundDistance(This,Distance) ) 

#define IGcadDimArcLength_get_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDimArcLength_put_DimLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine1Suppress(This,bSuppress) ) 

#define IGcadDimArcLength_get_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDimArcLength_put_DimLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLine2Suppress(This,bSuppress) ) 

#define IGcadDimArcLength_get_ExtLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_ExtLine1Suppress(This,bSuppress) ) 

#define IGcadDimArcLength_put_ExtLine1Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_ExtLine1Suppress(This,bSuppress) ) 

#define IGcadDimArcLength_get_ExtLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_ExtLine2Suppress(This,bSuppress) ) 

#define IGcadDimArcLength_put_ExtLine2Suppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_ExtLine2Suppress(This,bSuppress) ) 

#define IGcadDimArcLength_get_DimLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_DimLineInside(This,bInside) ) 

#define IGcadDimArcLength_put_DimLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_DimLineInside(This,bInside) ) 

#define IGcadDimArcLength_get_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInsideAlign(This,bInside) ) 

#define IGcadDimArcLength_put_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInsideAlign(This,bInside) ) 

#define IGcadDimArcLength_get_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInside(This,bInside) ) 

#define IGcadDimArcLength_put_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInside(This,bInside) ) 

#define IGcadDimArcLength_get_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_ForceLineInside(This,bInside) ) 

#define IGcadDimArcLength_put_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_ForceLineInside(This,bInside) ) 

#define IGcadDimArcLength_get_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextOutsideAlign(This,bInside) ) 

#define IGcadDimArcLength_put_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextOutsideAlign(This,bInside) ) 

#define IGcadDimArcLength_get_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> get_ExtensionLineOffset(This,Offset) ) 

#define IGcadDimArcLength_put_ExtensionLineOffset(This,Offset)	\
    ( (This)->lpVtbl -> put_ExtensionLineOffset(This,Offset) ) 

#define IGcadDimArcLength_get_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimArcLength_put_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimArcLength_get_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimArcLength_put_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimArcLength_get_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimArcLength_put_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimArcLength_get_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimArcLength_put_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimArcLength_get_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimArcLength_put_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimArcLength_get_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimArcLength_put_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimArcLength_get_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimArcLength_put_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimArcLength_get_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimArcLength_put_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimArcLength_get_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimArcLength_put_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimArcLength_get_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroInches(This,bVal) ) 

#define IGcadDimArcLength_put_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroInches(This,bVal) ) 

#define IGcadDimArcLength_get_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimArcLength_put_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimArcLength_get_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimArcLength_put_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimArcLength_get_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> get_DimensionLineWeight(This,weight) ) 

#define IGcadDimArcLength_put_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> put_DimensionLineWeight(This,weight) ) 

#define IGcadDimArcLength_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadDimArcLength_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadDimArcLength_get_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead1Type(This,Type) ) 

#define IGcadDimArcLength_put_Arrowhead1Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead1Type(This,Type) ) 

#define IGcadDimArcLength_get_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> get_Arrowhead2Type(This,Type) ) 

#define IGcadDimArcLength_put_Arrowhead2Type(This,Type)	\
    ( (This)->lpVtbl -> put_Arrowhead2Type(This,Type) ) 

#define IGcadDimArcLength_get_Measurement(This,bVal)	\
    ( (This)->lpVtbl -> get_Measurement(This,bVal) ) 

#define IGcadDimArcLength_get_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead1Block(This,BlockName) ) 

#define IGcadDimArcLength_put_Arrowhead1Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead1Block(This,BlockName) ) 

#define IGcadDimArcLength_get_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> get_Arrowhead2Block(This,BlockName) ) 

#define IGcadDimArcLength_put_Arrowhead2Block(This,BlockName)	\
    ( (This)->lpVtbl -> put_Arrowhead2Block(This,BlockName) ) 

#define IGcadDimArcLength_get_ArcPoint(This,pVal)	\
    ( (This)->lpVtbl -> get_ArcPoint(This,pVal) ) 

#define IGcadDimArcLength_put_ArcPoint(This,pVal)	\
    ( (This)->lpVtbl -> put_ArcPoint(This,pVal) ) 

#define IGcadDimArcLength_get_ExtLine1Point(This,pVal)	\
    ( (This)->lpVtbl -> get_ExtLine1Point(This,pVal) ) 

#define IGcadDimArcLength_put_ExtLine1Point(This,pVal)	\
    ( (This)->lpVtbl -> put_ExtLine1Point(This,pVal) ) 

#define IGcadDimArcLength_get_ExtLine2Point(This,pVal)	\
    ( (This)->lpVtbl -> get_ExtLine2Point(This,pVal) ) 

#define IGcadDimArcLength_put_ExtLine2Point(This,pVal)	\
    ( (This)->lpVtbl -> put_ExtLine2Point(This,pVal) ) 

#define IGcadDimArcLength_get_CenterPoint(This,pVal)	\
    ( (This)->lpVtbl -> get_CenterPoint(This,pVal) ) 

#define IGcadDimArcLength_put_CenterPoint(This,pVal)	\
    ( (This)->lpVtbl -> put_CenterPoint(This,pVal) ) 

#define IGcadDimArcLength_get_Leader1Point(This,pVal)	\
    ( (This)->lpVtbl -> get_Leader1Point(This,pVal) ) 

#define IGcadDimArcLength_put_Leader1Point(This,pVal)	\
    ( (This)->lpVtbl -> put_Leader1Point(This,pVal) ) 

#define IGcadDimArcLength_get_Leader2Point(This,pVal)	\
    ( (This)->lpVtbl -> get_Leader2Point(This,pVal) ) 

#define IGcadDimArcLength_put_Leader2Point(This,pVal)	\
    ( (This)->lpVtbl -> put_Leader2Point(This,pVal) ) 

#define IGcadDimArcLength_get_IsPartial(This,pVal)	\
    ( (This)->lpVtbl -> get_IsPartial(This,pVal) ) 

#define IGcadDimArcLength_put_IsPartial(This,pVal)	\
    ( (This)->lpVtbl -> put_IsPartial(This,pVal) ) 

#define IGcadDimArcLength_get_ArcStartParam(This,pVal)	\
    ( (This)->lpVtbl -> get_ArcStartParam(This,pVal) ) 

#define IGcadDimArcLength_put_ArcStartParam(This,pVal)	\
    ( (This)->lpVtbl -> put_ArcStartParam(This,pVal) ) 

#define IGcadDimArcLength_get_ArcEndParam(This,pVal)	\
    ( (This)->lpVtbl -> get_ArcEndParam(This,pVal) ) 

#define IGcadDimArcLength_put_ArcEndParam(This,pVal)	\
    ( (This)->lpVtbl -> put_ArcEndParam(This,pVal) ) 

#define IGcadDimArcLength_get_HasLeader(This,pVal)	\
    ( (This)->lpVtbl -> get_HasLeader(This,pVal) ) 

#define IGcadDimArcLength_put_HasLeader(This,pVal)	\
    ( (This)->lpVtbl -> put_HasLeader(This,pVal) ) 

#define IGcadDimArcLength_get_SymbolPosition(This,Position)	\
    ( (This)->lpVtbl -> get_SymbolPosition(This,Position) ) 

#define IGcadDimArcLength_put_SymbolPosition(This,Position)	\
    ( (This)->lpVtbl -> put_SymbolPosition(This,Position) ) 

#define IGcadDimArcLength_get_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_DimensionLinetype(This,Linetype) ) 

#define IGcadDimArcLength_put_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_DimensionLinetype(This,Linetype) ) 

#define IGcadDimArcLength_get_ExtLine1Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ExtLine1Linetype(This,Linetype) ) 

#define IGcadDimArcLength_put_ExtLine1Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ExtLine1Linetype(This,Linetype) ) 

#define IGcadDimArcLength_get_ExtLine2Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ExtLine2Linetype(This,Linetype) ) 

#define IGcadDimArcLength_put_ExtLine2Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ExtLine2Linetype(This,Linetype) ) 

#define IGcadDimArcLength_get_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDimArcLength_put_ExtLineFixedLenSuppress(This,bFixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLenSuppress(This,bFixedLen) ) 

#define IGcadDimArcLength_get_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> get_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDimArcLength_put_ExtLineFixedLen(This,FixedLen)	\
    ( (This)->lpVtbl -> put_ExtLineFixedLen(This,FixedLen) ) 

#define IGcadDimArcLength_get_SubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_SubUnitsSuffix(This,suffix) ) 

#define IGcadDimArcLength_put_SubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_SubUnitsSuffix(This,suffix) ) 

#define IGcadDimArcLength_get_SubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_SubUnitsFactor(This,factor) ) 

#define IGcadDimArcLength_put_SubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> put_SubUnitsFactor(This,factor) ) 

#define IGcadDimArcLength_get_AltSubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_AltSubUnitsSuffix(This,suffix) ) 

#define IGcadDimArcLength_put_AltSubUnitsSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_AltSubUnitsSuffix(This,suffix) ) 

#define IGcadDimArcLength_get_AltSubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_AltSubUnitsFactor(This,factor) ) 

#define IGcadDimArcLength_put_AltSubUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> put_AltSubUnitsFactor(This,factor) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltTextPrefix_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimArcLength_put_AltTextPrefix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_AltTextSuffix_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ BSTR *prefix);


void __RPC_STUB IGcadDimArcLength_get_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltTextSuffix_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimArcLength_put_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_DimensionLineColor_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GCAD_COLOR *Type);


void __RPC_STUB IGcadDimArcLength_get_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_DimensionLineColor_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GCAD_COLOR Type);


void __RPC_STUB IGcadDimArcLength_put_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtensionLineColor_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GCAD_COLOR *Type);


void __RPC_STUB IGcadDimArcLength_get_ExtensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtensionLineColor_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GCAD_COLOR Type);


void __RPC_STUB IGcadDimArcLength_put_ExtensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_PrimaryUnitsPrecision_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GcDimPrecision *Prec);


void __RPC_STUB IGcadDimArcLength_get_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_PrimaryUnitsPrecision_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GcDimPrecision Prec);


void __RPC_STUB IGcadDimArcLength_put_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_DimensionLineExtend_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ double *extend);


void __RPC_STUB IGcadDimArcLength_get_DimensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_DimensionLineExtend_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ double extend);


void __RPC_STUB IGcadDimArcLength_put_DimensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtensionLineExtend_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ double *extend);


void __RPC_STUB IGcadDimArcLength_get_ExtensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtensionLineExtend_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ double extend);


void __RPC_STUB IGcadDimArcLength_put_ExtensionLineExtend_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_Fit_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GcDimFit *fittype);


void __RPC_STUB IGcadDimArcLength_get_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_Fit_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GcDimFit fittype);


void __RPC_STUB IGcadDimArcLength_put_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_FractionFormat_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GcDimFractionType *Type);


void __RPC_STUB IGcadDimArcLength_get_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_FractionFormat_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GcDimFractionType Type);


void __RPC_STUB IGcadDimArcLength_put_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_HorizontalTextPosition_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GcDimHorizontalJustification *Type);


void __RPC_STUB IGcadDimArcLength_get_HorizontalTextPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_HorizontalTextPosition_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GcDimHorizontalJustification Type);


void __RPC_STUB IGcadDimArcLength_put_HorizontalTextPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_LinearScaleFactor_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GCAD_NOUNITS *Type);


void __RPC_STUB IGcadDimArcLength_get_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_LinearScaleFactor_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GCAD_NOUNITS Type);


void __RPC_STUB IGcadDimArcLength_put_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_UnitsFormat_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GcDimLUnits *format);


void __RPC_STUB IGcadDimArcLength_get_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_UnitsFormat_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GcDimLUnits format);


void __RPC_STUB IGcadDimArcLength_put_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtensionLineWeight_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GCAD_LWEIGHT *lweight);


void __RPC_STUB IGcadDimArcLength_get_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtensionLineWeight_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GCAD_LWEIGHT lweight);


void __RPC_STUB IGcadDimArcLength_put_ExtensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_RoundDistance_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ double *Distance);


void __RPC_STUB IGcadDimArcLength_get_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_RoundDistance_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ double Distance);


void __RPC_STUB IGcadDimArcLength_put_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_DimLine1Suppress_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimArcLength_get_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_DimLine1Suppress_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimArcLength_put_DimLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_DimLine2Suppress_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimArcLength_get_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_DimLine2Suppress_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimArcLength_put_DimLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtLine1Suppress_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimArcLength_get_ExtLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtLine1Suppress_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimArcLength_put_ExtLine1Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtLine2Suppress_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimArcLength_get_ExtLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtLine2Suppress_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimArcLength_put_ExtLine2Suppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_DimLineInside_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimArcLength_get_DimLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_DimLineInside_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimArcLength_put_DimLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_TextInsideAlign_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimArcLength_get_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_TextInsideAlign_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimArcLength_put_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_TextInside_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimArcLength_get_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_TextInside_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimArcLength_put_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ForceLineInside_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimArcLength_get_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ForceLineInside_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimArcLength_put_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_TextOutsideAlign_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimArcLength_get_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_TextOutsideAlign_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimArcLength_put_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtensionLineOffset_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ double *Offset);


void __RPC_STUB IGcadDimArcLength_get_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtensionLineOffset_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ double Offset);


void __RPC_STUB IGcadDimArcLength_put_ExtensionLineOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_AltSuppressLeadingZeros_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltSuppressLeadingZeros_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_AltSuppressTrailingZeros_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltSuppressTrailingZeros_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_AltSuppressZeroFeet_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltSuppressZeroFeet_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_AltSuppressZeroInches_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltSuppressZeroInches_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_SuppressZeroFeet_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_SuppressZeroFeet_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_SuppressZeroInches_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_SuppressZeroInches_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimArcLength_get_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimArcLength_put_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_DimensionLineWeight_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GCAD_LWEIGHT *weight);


void __RPC_STUB IGcadDimArcLength_get_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_DimensionLineWeight_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GCAD_LWEIGHT weight);


void __RPC_STUB IGcadDimArcLength_put_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ArrowheadSize_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ double *size);


void __RPC_STUB IGcadDimArcLength_get_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ArrowheadSize_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ double size);


void __RPC_STUB IGcadDimArcLength_put_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_Arrowhead1Type_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimArcLength_get_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_Arrowhead1Type_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimArcLength_put_Arrowhead1Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_Arrowhead2Type_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimArcLength_get_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_Arrowhead2Type_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimArcLength_put_Arrowhead2Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_Measurement_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ double *bVal);


void __RPC_STUB IGcadDimArcLength_get_Measurement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_Arrowhead1Block_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimArcLength_get_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_Arrowhead1Block_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimArcLength_put_Arrowhead1Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_Arrowhead2Block_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimArcLength_get_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_Arrowhead2Block_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimArcLength_put_Arrowhead2Block_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ArcPoint_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IGcadDimArcLength_get_ArcPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ArcPoint_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IGcadDimArcLength_put_ArcPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtLine1Point_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IGcadDimArcLength_get_ExtLine1Point_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtLine1Point_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IGcadDimArcLength_put_ExtLine1Point_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtLine2Point_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IGcadDimArcLength_get_ExtLine2Point_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtLine2Point_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IGcadDimArcLength_put_ExtLine2Point_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_CenterPoint_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IGcadDimArcLength_get_CenterPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_CenterPoint_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IGcadDimArcLength_put_CenterPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_Leader1Point_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IGcadDimArcLength_get_Leader1Point_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_Leader1Point_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IGcadDimArcLength_put_Leader1Point_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_Leader2Point_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IGcadDimArcLength_get_Leader2Point_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_Leader2Point_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IGcadDimArcLength_put_Leader2Point_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_IsPartial_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB IGcadDimArcLength_get_IsPartial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_IsPartial_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL pVal);


void __RPC_STUB IGcadDimArcLength_put_IsPartial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ArcStartParam_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ double *pVal);


void __RPC_STUB IGcadDimArcLength_get_ArcStartParam_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ArcStartParam_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ double pVal);


void __RPC_STUB IGcadDimArcLength_put_ArcStartParam_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ArcEndParam_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ double *pVal);


void __RPC_STUB IGcadDimArcLength_get_ArcEndParam_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ArcEndParam_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ double pVal);


void __RPC_STUB IGcadDimArcLength_put_ArcEndParam_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_HasLeader_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB IGcadDimArcLength_get_HasLeader_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_HasLeader_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL pVal);


void __RPC_STUB IGcadDimArcLength_put_HasLeader_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_SymbolPosition_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ GcDimArcLengthSymbol *Position);


void __RPC_STUB IGcadDimArcLength_get_SymbolPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_SymbolPosition_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ GcDimArcLengthSymbol Position);


void __RPC_STUB IGcadDimArcLength_put_SymbolPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_DimensionLinetype_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimArcLength_get_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_DimensionLinetype_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimArcLength_put_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtLine1Linetype_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimArcLength_get_ExtLine1Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtLine1Linetype_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimArcLength_put_ExtLine1Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtLine2Linetype_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimArcLength_get_ExtLine2Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtLine2Linetype_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimArcLength_put_ExtLine2Linetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtLineFixedLenSuppress_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ VARIANT_BOOL *bFixedLen);


void __RPC_STUB IGcadDimArcLength_get_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtLineFixedLenSuppress_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ VARIANT_BOOL bFixedLen);


void __RPC_STUB IGcadDimArcLength_put_ExtLineFixedLenSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_ExtLineFixedLen_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ double *FixedLen);


void __RPC_STUB IGcadDimArcLength_get_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_ExtLineFixedLen_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ double FixedLen);


void __RPC_STUB IGcadDimArcLength_put_ExtLineFixedLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_SubUnitsSuffix_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ BSTR *suffix);


void __RPC_STUB IGcadDimArcLength_get_SubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_SubUnitsSuffix_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ BSTR suffix);


void __RPC_STUB IGcadDimArcLength_put_SubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_SubUnitsFactor_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ double *factor);


void __RPC_STUB IGcadDimArcLength_get_SubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_SubUnitsFactor_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ double factor);


void __RPC_STUB IGcadDimArcLength_put_SubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_AltSubUnitsSuffix_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ BSTR *suffix);


void __RPC_STUB IGcadDimArcLength_get_AltSubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltSubUnitsSuffix_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ BSTR suffix);


void __RPC_STUB IGcadDimArcLength_put_AltSubUnitsSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_get_AltSubUnitsFactor_Proxy( 
    IGcadDimArcLength * This,
    /* [retval][out] */ double *factor);


void __RPC_STUB IGcadDimArcLength_get_AltSubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimArcLength_put_AltSubUnitsFactor_Proxy( 
    IGcadDimArcLength * This,
    /* [in] */ double factor);


void __RPC_STUB IGcadDimArcLength_put_AltSubUnitsFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGcadDimArcLength_INTERFACE_DEFINED__ */


#ifndef __IGcadDimRadialLarge_INTERFACE_DEFINED__
#define __IGcadDimRadialLarge_INTERFACE_DEFINED__

/* interface IGcadDimRadialLarge */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDimRadialLarge;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E3D1CABD-C84B-49D2-9D47-984F880D33A2")
    IGcadDimRadialLarge : public IGcadDimension
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnits( 
            /* [retval][out] */ VARIANT_BOOL *bAlternate) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnits( 
            /* [in] */ VARIANT_BOOL bAlternate) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *precision) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsPrecision( 
            /* [in] */ GcDimPrecision precision) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsScale( 
            /* [retval][out] */ GCAD_NOUNITS *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsScale( 
            /* [in] */ GCAD_NOUNITS scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltRoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltRoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTolerancePrecision( 
            /* [retval][out] */ GcDimPrecision *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTolerancePrecision( 
            /* [in] */ GcDimPrecision Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltUnitsFormat( 
            /* [retval][out] */ GcDimUnits *Units) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltUnitsFormat( 
            /* [in] */ GcDimUnits Units) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextPrefix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextPrefix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltTextSuffix( 
            /* [retval][out] */ BSTR *prefix) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltTextSuffix( 
            /* [in] */ BSTR prefix) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CenterType( 
            /* [retval][out] */ GcDimCenterType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CenterType( 
            /* [in] */ GcDimCenterType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CenterMarkSize( 
            /* [retval][out] */ double *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CenterMarkSize( 
            /* [in] */ double Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineColor( 
            /* [retval][out] */ GCAD_COLOR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineColor( 
            /* [in] */ GCAD_COLOR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PrimaryUnitsPrecision( 
            /* [retval][out] */ GcDimPrecision *Prec) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PrimaryUnitsPrecision( 
            /* [in] */ GcDimPrecision Prec) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FractionFormat( 
            /* [retval][out] */ GcDimFractionType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FractionFormat( 
            /* [in] */ GcDimFractionType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Fit( 
            /* [retval][out] */ GcDimFit *fittype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Fit( 
            /* [in] */ GcDimFit fittype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LinearScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LinearScaleFactor( 
            /* [in] */ GCAD_NOUNITS Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnitsFormat( 
            /* [retval][out] */ GcDimLUnits *format) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UnitsFormat( 
            /* [in] */ GcDimLUnits format) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RoundDistance( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RoundDistance( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimLineSuppress( 
            /* [retval][out] */ VARIANT_BOOL *bSuppress) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimLineSuppress( 
            /* [in] */ VARIANT_BOOL bSuppress) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForceLineInside( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForceLineInside( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextOutsideAlign( 
            /* [retval][out] */ VARIANT_BOOL *bInside) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextOutsideAlign( 
            /* [in] */ VARIANT_BOOL bInside) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressLeadingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressLeadingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressTrailingZeros( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressTrailingZeros( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AltToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AltToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroFeet( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroFeet( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToleranceSuppressZeroInches( 
            /* [retval][out] */ VARIANT_BOOL *bVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToleranceSuppressZeroInches( 
            /* [in] */ VARIANT_BOOL bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *weight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLineWeight( 
            /* [in] */ GCAD_LWEIGHT weight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadType( 
            /* [retval][out] */ GcDimArrowheadType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadType( 
            /* [in] */ GcDimArrowheadType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Measurement( 
            /* [retval][out] */ double *bVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadBlock( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadBlock( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_OverrideCenter( 
            /* [retval][out] */ VARIANT *overrideCenterPos) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_OverrideCenter( 
            /* [in] */ VARIANT overrideCenterPos) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_JogLocation( 
            /* [retval][out] */ VARIANT *jogPos) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_JogLocation( 
            /* [in] */ VARIANT jogPos) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_JogAngle( 
            /* [retval][out] */ GCAD_ANGLE *JogAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_JogAngle( 
            /* [in] */ GCAD_ANGLE JogAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Center( 
            /* [retval][out] */ VARIANT *pVar) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Center( 
            /* [in] */ VARIANT pVar) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ChordPoint( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ChordPoint( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DimensionLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DimensionLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDimRadialLargeVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDimRadialLarge * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDimRadialLarge * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDimRadialLarge * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDimRadialLarge * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDimRadialLarge * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDimRadialLarge * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDimRadialLarge * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDimRadialLarge * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDimRadialLarge * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadDimRadialLarge * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadDimRadialLarge * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadDimRadialLarge * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadDimRadialLarge * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadDimRadialLarge * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadDimRadialLarge * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPosition )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT *textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPosition )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT textPos);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRotation )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRotation )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextOverride)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOverride )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextOverride)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOverride )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DecimalSeparator)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DecimalSeparator )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DecimalSeparator)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DecimalSeparator )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR character);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGap )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ double *Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGap )( 
            IGcadDimRadialLarge * This,
            /* [in] */ double Offset);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextPrefix )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextPrefix )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextSuffix )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextSuffix )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR suffix);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_VerticalTextPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalTextPosition )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimVerticalJustification *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_VerticalTextPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalTextPosition )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimVerticalJustification Type);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TolerancePrecision )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TolerancePrecision )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceHeightScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceHeightScale )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceHeightScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceHeightScale )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceLowerLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceLowerLimit )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ double *lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceLowerLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceLowerLimit )( 
            IGcadDimRadialLarge * This,
            /* [in] */ double lower);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextMovement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextMovement )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimTextMovement *Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextMovement)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextMovement )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimTextMovement Move);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceDisplay )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimToleranceMethod *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceDisplay )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimToleranceMethod method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceJustification)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceJustification )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimToleranceJustify *method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceJustification)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceJustification )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimToleranceJustify method);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceUpperLimit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceUpperLimit )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ double *upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceUpperLimit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceUpperLimit )( 
            IGcadDimRadialLarge * This,
            /* [in] */ double upper);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR style);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadDimRadialLarge * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressLeadingZeros )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressLeadingZeros )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_SuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressTrailingZeros )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_SuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressTrailingZeros )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressLeadingZeros )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressLeadingZeros )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_ToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressTrailingZeros )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_ToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressTrailingZeros )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFill )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFill )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_TextFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFillColor )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_TextFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFillColor )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadDimension, get_DimTxtDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimTxtDirection )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *pbVal);
        
        DECLSPEC_XFGVIRT(IGcadDimension, put_DimTxtDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimTxtDirection )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnits )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltUnits)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnits )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bAlternate);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsPrecision )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimPrecision *precision);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsPrecision )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimPrecision precision);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltUnitsScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsScale )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_NOUNITS *scale);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltUnitsScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsScale )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_NOUNITS scale);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltRoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltRoundDistance )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltRoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltRoundDistance )( 
            IGcadDimRadialLarge * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltTolerancePrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTolerancePrecision )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimPrecision *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltTolerancePrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTolerancePrecision )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimPrecision Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltUnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltUnitsFormat )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimUnits *Units);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltUnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltUnitsFormat )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimUnits Units);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltTextPrefix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextPrefix )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltTextPrefix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextPrefix )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltTextSuffix)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltTextSuffix )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltTextSuffix)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltTextSuffix )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR prefix);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_CenterType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CenterType )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimCenterType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_CenterType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CenterType )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimCenterType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_CenterMarkSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CenterMarkSize )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ double *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_CenterMarkSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CenterMarkSize )( 
            IGcadDimRadialLarge * This,
            /* [in] */ double Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_DimensionLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineColor )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_COLOR *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_DimensionLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineColor )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_COLOR Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_PrimaryUnitsPrecision)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrimaryUnitsPrecision )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimPrecision *Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_PrimaryUnitsPrecision)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PrimaryUnitsPrecision )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimPrecision Prec);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_FractionFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FractionFormat )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimFractionType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_FractionFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FractionFormat )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimFractionType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_Fit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fit )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimFit *fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_Fit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fit )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimFit fittype);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_LinearScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinearScaleFactor )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_NOUNITS *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_LinearScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinearScaleFactor )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_NOUNITS Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_UnitsFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnitsFormat )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimLUnits *format);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_UnitsFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnitsFormat )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimLUnits format);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_RoundDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RoundDistance )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_RoundDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RoundDistance )( 
            IGcadDimRadialLarge * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_DimLineSuppress)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimLineSuppress )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_DimLineSuppress)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimLineSuppress )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bSuppress);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_TextInsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInsideAlign )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_TextInsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInsideAlign )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_TextInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextInside )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_TextInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextInside )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_ForceLineInside)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForceLineInside )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_ForceLineInside)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForceLineInside )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_TextOutsideAlign)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextOutsideAlign )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_TextOutsideAlign)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextOutsideAlign )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bInside);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressLeadingZeros )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressLeadingZeros )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressTrailingZeros )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressTrailingZeros )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroFeet )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroFeet )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltSuppressZeroInches )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltSuppressZeroInches )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressLeadingZeros )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltToleranceSuppressLeadingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressLeadingZeros )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressTrailingZeros )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltToleranceSuppressTrailingZeros)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressTrailingZeros )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroFeet )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroFeet )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_AltToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AltToleranceSuppressZeroInches )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_AltToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AltToleranceSuppressZeroInches )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_SuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroFeet )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_SuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroFeet )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_SuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SuppressZeroInches )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_SuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SuppressZeroInches )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_ToleranceSuppressZeroFeet)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroFeet )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_ToleranceSuppressZeroFeet)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroFeet )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_ToleranceSuppressZeroInches)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToleranceSuppressZeroInches )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT_BOOL *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_ToleranceSuppressZeroInches)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToleranceSuppressZeroInches )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT_BOOL bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_DimensionLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLineWeight )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_LWEIGHT *weight);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_DimensionLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLineWeight )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_LWEIGHT weight);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadDimRadialLarge * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_ArrowheadType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadType )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GcDimArrowheadType *Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_ArrowheadType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadType )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GcDimArrowheadType Type);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_Measurement)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Measurement )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ double *bVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_ArrowheadBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadBlock )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_ArrowheadBlock)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadBlock )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_OverrideCenter)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OverrideCenter )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT *overrideCenterPos);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_OverrideCenter)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_OverrideCenter )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT overrideCenterPos);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_JogLocation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_JogLocation )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT *jogPos);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_JogLocation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_JogLocation )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT jogPos);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_JogAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_JogAngle )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ GCAD_ANGLE *JogAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_JogAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_JogAngle )( 
            IGcadDimRadialLarge * This,
            /* [in] */ GCAD_ANGLE JogAngle);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_Center)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Center )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT *pVar);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_Center)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Center )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT pVar);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_ChordPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ChordPoint )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_ChordPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ChordPoint )( 
            IGcadDimRadialLarge * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, get_DimensionLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimensionLinetype )( 
            IGcadDimRadialLarge * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadDimRadialLarge, put_DimensionLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DimensionLinetype )( 
            IGcadDimRadialLarge * This,
            /* [in] */ BSTR Linetype);
        
        END_INTERFACE
    } IGcadDimRadialLargeVtbl;

    interface IGcadDimRadialLarge
    {
        CONST_VTBL struct IGcadDimRadialLargeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDimRadialLarge_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDimRadialLarge_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDimRadialLarge_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDimRadialLarge_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDimRadialLarge_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDimRadialLarge_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDimRadialLarge_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDimRadialLarge_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDimRadialLarge_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDimRadialLarge_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDimRadialLarge_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDimRadialLarge_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDimRadialLarge_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDimRadialLarge_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDimRadialLarge_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDimRadialLarge_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDimRadialLarge_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDimRadialLarge_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDimRadialLarge_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDimRadialLarge_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDimRadialLarge_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadDimRadialLarge_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadDimRadialLarge_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadDimRadialLarge_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadDimRadialLarge_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadDimRadialLarge_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadDimRadialLarge_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadDimRadialLarge_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadDimRadialLarge_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadDimRadialLarge_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadDimRadialLarge_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadDimRadialLarge_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadDimRadialLarge_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadDimRadialLarge_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadDimRadialLarge_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadDimRadialLarge_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadDimRadialLarge_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadDimRadialLarge_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadDimRadialLarge_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadDimRadialLarge_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadDimRadialLarge_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadDimRadialLarge_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadDimRadialLarge_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadDimRadialLarge_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadDimRadialLarge_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadDimRadialLarge_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadDimRadialLarge_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadDimRadialLarge_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadDimRadialLarge_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadDimRadialLarge_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadDimRadialLarge_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadDimRadialLarge_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadDimRadialLarge_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadDimRadialLarge_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadDimRadialLarge_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadDimRadialLarge_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadDimRadialLarge_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadDimRadialLarge_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadDimRadialLarge_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadDimRadialLarge_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadDimRadialLarge_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadDimRadialLarge_get_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> get_TextPosition(This,textPos) ) 

#define IGcadDimRadialLarge_put_TextPosition(This,textPos)	\
    ( (This)->lpVtbl -> put_TextPosition(This,textPos) ) 

#define IGcadDimRadialLarge_get_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_TextRotation(This,rotAngle) ) 

#define IGcadDimRadialLarge_put_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_TextRotation(This,rotAngle) ) 

#define IGcadDimRadialLarge_get_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextOverride(This,bstrText) ) 

#define IGcadDimRadialLarge_put_TextOverride(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextOverride(This,bstrText) ) 

#define IGcadDimRadialLarge_get_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_StyleName(This,bstrName) ) 

#define IGcadDimRadialLarge_put_StyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_StyleName(This,bstrName) ) 

#define IGcadDimRadialLarge_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadDimRadialLarge_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadDimRadialLarge_get_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> get_DecimalSeparator(This,character) ) 

#define IGcadDimRadialLarge_put_DecimalSeparator(This,character)	\
    ( (This)->lpVtbl -> put_DecimalSeparator(This,character) ) 

#define IGcadDimRadialLarge_get_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> get_TextGap(This,Offset) ) 

#define IGcadDimRadialLarge_put_TextGap(This,Offset)	\
    ( (This)->lpVtbl -> put_TextGap(This,Offset) ) 

#define IGcadDimRadialLarge_get_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_TextPrefix(This,prefix) ) 

#define IGcadDimRadialLarge_put_TextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_TextPrefix(This,prefix) ) 

#define IGcadDimRadialLarge_get_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> get_TextSuffix(This,suffix) ) 

#define IGcadDimRadialLarge_put_TextSuffix(This,suffix)	\
    ( (This)->lpVtbl -> put_TextSuffix(This,suffix) ) 

#define IGcadDimRadialLarge_get_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,factor) ) 

#define IGcadDimRadialLarge_put_ScaleFactor(This,factor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,factor) ) 

#define IGcadDimRadialLarge_get_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> get_VerticalTextPosition(This,Type) ) 

#define IGcadDimRadialLarge_put_VerticalTextPosition(This,Type)	\
    ( (This)->lpVtbl -> put_VerticalTextPosition(This,Type) ) 

#define IGcadDimRadialLarge_get_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> get_TolerancePrecision(This,precision) ) 

#define IGcadDimRadialLarge_put_TolerancePrecision(This,precision)	\
    ( (This)->lpVtbl -> put_TolerancePrecision(This,precision) ) 

#define IGcadDimRadialLarge_get_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> get_ToleranceHeightScale(This,scale) ) 

#define IGcadDimRadialLarge_put_ToleranceHeightScale(This,scale)	\
    ( (This)->lpVtbl -> put_ToleranceHeightScale(This,scale) ) 

#define IGcadDimRadialLarge_get_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> get_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimRadialLarge_put_ToleranceLowerLimit(This,lower)	\
    ( (This)->lpVtbl -> put_ToleranceLowerLimit(This,lower) ) 

#define IGcadDimRadialLarge_get_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> get_TextMovement(This,Move) ) 

#define IGcadDimRadialLarge_put_TextMovement(This,Move)	\
    ( (This)->lpVtbl -> put_TextMovement(This,Move) ) 

#define IGcadDimRadialLarge_get_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceDisplay(This,method) ) 

#define IGcadDimRadialLarge_put_ToleranceDisplay(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceDisplay(This,method) ) 

#define IGcadDimRadialLarge_get_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> get_ToleranceJustification(This,method) ) 

#define IGcadDimRadialLarge_put_ToleranceJustification(This,method)	\
    ( (This)->lpVtbl -> put_ToleranceJustification(This,method) ) 

#define IGcadDimRadialLarge_get_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> get_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimRadialLarge_put_ToleranceUpperLimit(This,upper)	\
    ( (This)->lpVtbl -> put_ToleranceUpperLimit(This,upper) ) 

#define IGcadDimRadialLarge_get_TextStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextStyle(This,style) ) 

#define IGcadDimRadialLarge_put_TextStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextStyle(This,style) ) 

#define IGcadDimRadialLarge_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadDimRadialLarge_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadDimRadialLarge_get_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_put_SuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_get_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_put_SuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_get_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_put_ToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_get_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_put_ToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_get_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> get_TextFill(This,bVal) ) 

#define IGcadDimRadialLarge_put_TextFill(This,bVal)	\
    ( (This)->lpVtbl -> put_TextFill(This,bVal) ) 

#define IGcadDimRadialLarge_get_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> get_TextFillColor(This,color) ) 

#define IGcadDimRadialLarge_put_TextFillColor(This,color)	\
    ( (This)->lpVtbl -> put_TextFillColor(This,color) ) 

#define IGcadDimRadialLarge_get_DimTxtDirection(This,pbVal)	\
    ( (This)->lpVtbl -> get_DimTxtDirection(This,pbVal) ) 

#define IGcadDimRadialLarge_put_DimTxtDirection(This,bVal)	\
    ( (This)->lpVtbl -> put_DimTxtDirection(This,bVal) ) 


#define IGcadDimRadialLarge_get_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> get_AltUnits(This,bAlternate) ) 

#define IGcadDimRadialLarge_put_AltUnits(This,bAlternate)	\
    ( (This)->lpVtbl -> put_AltUnits(This,bAlternate) ) 

#define IGcadDimRadialLarge_get_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> get_AltUnitsPrecision(This,precision) ) 

#define IGcadDimRadialLarge_put_AltUnitsPrecision(This,precision)	\
    ( (This)->lpVtbl -> put_AltUnitsPrecision(This,precision) ) 

#define IGcadDimRadialLarge_get_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> get_AltUnitsScale(This,scale) ) 

#define IGcadDimRadialLarge_put_AltUnitsScale(This,scale)	\
    ( (This)->lpVtbl -> put_AltUnitsScale(This,scale) ) 

#define IGcadDimRadialLarge_get_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_AltRoundDistance(This,Distance) ) 

#define IGcadDimRadialLarge_put_AltRoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_AltRoundDistance(This,Distance) ) 

#define IGcadDimRadialLarge_get_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> get_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimRadialLarge_put_AltTolerancePrecision(This,Distance)	\
    ( (This)->lpVtbl -> put_AltTolerancePrecision(This,Distance) ) 

#define IGcadDimRadialLarge_get_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> get_AltUnitsFormat(This,Units) ) 

#define IGcadDimRadialLarge_put_AltUnitsFormat(This,Units)	\
    ( (This)->lpVtbl -> put_AltUnitsFormat(This,Units) ) 

#define IGcadDimRadialLarge_get_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextPrefix(This,prefix) ) 

#define IGcadDimRadialLarge_put_AltTextPrefix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextPrefix(This,prefix) ) 

#define IGcadDimRadialLarge_get_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> get_AltTextSuffix(This,prefix) ) 

#define IGcadDimRadialLarge_put_AltTextSuffix(This,prefix)	\
    ( (This)->lpVtbl -> put_AltTextSuffix(This,prefix) ) 

#define IGcadDimRadialLarge_get_CenterType(This,Type)	\
    ( (This)->lpVtbl -> get_CenterType(This,Type) ) 

#define IGcadDimRadialLarge_put_CenterType(This,Type)	\
    ( (This)->lpVtbl -> put_CenterType(This,Type) ) 

#define IGcadDimRadialLarge_get_CenterMarkSize(This,Type)	\
    ( (This)->lpVtbl -> get_CenterMarkSize(This,Type) ) 

#define IGcadDimRadialLarge_put_CenterMarkSize(This,Type)	\
    ( (This)->lpVtbl -> put_CenterMarkSize(This,Type) ) 

#define IGcadDimRadialLarge_get_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_DimensionLineColor(This,Type) ) 

#define IGcadDimRadialLarge_put_DimensionLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_DimensionLineColor(This,Type) ) 

#define IGcadDimRadialLarge_get_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> get_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimRadialLarge_put_PrimaryUnitsPrecision(This,Prec)	\
    ( (This)->lpVtbl -> put_PrimaryUnitsPrecision(This,Prec) ) 

#define IGcadDimRadialLarge_get_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> get_FractionFormat(This,Type) ) 

#define IGcadDimRadialLarge_put_FractionFormat(This,Type)	\
    ( (This)->lpVtbl -> put_FractionFormat(This,Type) ) 

#define IGcadDimRadialLarge_get_Fit(This,fittype)	\
    ( (This)->lpVtbl -> get_Fit(This,fittype) ) 

#define IGcadDimRadialLarge_put_Fit(This,fittype)	\
    ( (This)->lpVtbl -> put_Fit(This,fittype) ) 

#define IGcadDimRadialLarge_get_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> get_LinearScaleFactor(This,Type) ) 

#define IGcadDimRadialLarge_put_LinearScaleFactor(This,Type)	\
    ( (This)->lpVtbl -> put_LinearScaleFactor(This,Type) ) 

#define IGcadDimRadialLarge_get_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> get_UnitsFormat(This,format) ) 

#define IGcadDimRadialLarge_put_UnitsFormat(This,format)	\
    ( (This)->lpVtbl -> put_UnitsFormat(This,format) ) 

#define IGcadDimRadialLarge_get_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> get_RoundDistance(This,Distance) ) 

#define IGcadDimRadialLarge_put_RoundDistance(This,Distance)	\
    ( (This)->lpVtbl -> put_RoundDistance(This,Distance) ) 

#define IGcadDimRadialLarge_get_DimLineSuppress(This,bSuppress)	\
    ( (This)->lpVtbl -> get_DimLineSuppress(This,bSuppress) ) 

#define IGcadDimRadialLarge_put_DimLineSuppress(This,bSuppress)	\
    ( (This)->lpVtbl -> put_DimLineSuppress(This,bSuppress) ) 

#define IGcadDimRadialLarge_get_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInsideAlign(This,bInside) ) 

#define IGcadDimRadialLarge_put_TextInsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInsideAlign(This,bInside) ) 

#define IGcadDimRadialLarge_get_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> get_TextInside(This,bInside) ) 

#define IGcadDimRadialLarge_put_TextInside(This,bInside)	\
    ( (This)->lpVtbl -> put_TextInside(This,bInside) ) 

#define IGcadDimRadialLarge_get_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> get_ForceLineInside(This,bInside) ) 

#define IGcadDimRadialLarge_put_ForceLineInside(This,bInside)	\
    ( (This)->lpVtbl -> put_ForceLineInside(This,bInside) ) 

#define IGcadDimRadialLarge_get_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> get_TextOutsideAlign(This,bInside) ) 

#define IGcadDimRadialLarge_put_TextOutsideAlign(This,bInside)	\
    ( (This)->lpVtbl -> put_TextOutsideAlign(This,bInside) ) 

#define IGcadDimRadialLarge_get_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_put_AltSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_get_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_put_AltSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_get_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadialLarge_put_AltSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadialLarge_get_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadialLarge_put_AltSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadialLarge_get_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_put_AltToleranceSuppressLeadingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressLeadingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_get_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_put_AltToleranceSuppressTrailingZeros(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressTrailingZeros(This,bVal) ) 

#define IGcadDimRadialLarge_get_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadialLarge_put_AltToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadialLarge_get_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadialLarge_put_AltToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_AltToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadialLarge_get_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadialLarge_put_SuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadialLarge_get_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_SuppressZeroInches(This,bVal) ) 

#define IGcadDimRadialLarge_put_SuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_SuppressZeroInches(This,bVal) ) 

#define IGcadDimRadialLarge_get_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadialLarge_put_ToleranceSuppressZeroFeet(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroFeet(This,bVal) ) 

#define IGcadDimRadialLarge_get_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> get_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadialLarge_put_ToleranceSuppressZeroInches(This,bVal)	\
    ( (This)->lpVtbl -> put_ToleranceSuppressZeroInches(This,bVal) ) 

#define IGcadDimRadialLarge_get_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> get_DimensionLineWeight(This,weight) ) 

#define IGcadDimRadialLarge_put_DimensionLineWeight(This,weight)	\
    ( (This)->lpVtbl -> put_DimensionLineWeight(This,weight) ) 

#define IGcadDimRadialLarge_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadDimRadialLarge_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadDimRadialLarge_get_ArrowheadType(This,Type)	\
    ( (This)->lpVtbl -> get_ArrowheadType(This,Type) ) 

#define IGcadDimRadialLarge_put_ArrowheadType(This,Type)	\
    ( (This)->lpVtbl -> put_ArrowheadType(This,Type) ) 

#define IGcadDimRadialLarge_get_Measurement(This,bVal)	\
    ( (This)->lpVtbl -> get_Measurement(This,bVal) ) 

#define IGcadDimRadialLarge_get_ArrowheadBlock(This,BlockName)	\
    ( (This)->lpVtbl -> get_ArrowheadBlock(This,BlockName) ) 

#define IGcadDimRadialLarge_put_ArrowheadBlock(This,BlockName)	\
    ( (This)->lpVtbl -> put_ArrowheadBlock(This,BlockName) ) 

#define IGcadDimRadialLarge_get_OverrideCenter(This,overrideCenterPos)	\
    ( (This)->lpVtbl -> get_OverrideCenter(This,overrideCenterPos) ) 

#define IGcadDimRadialLarge_put_OverrideCenter(This,overrideCenterPos)	\
    ( (This)->lpVtbl -> put_OverrideCenter(This,overrideCenterPos) ) 

#define IGcadDimRadialLarge_get_JogLocation(This,jogPos)	\
    ( (This)->lpVtbl -> get_JogLocation(This,jogPos) ) 

#define IGcadDimRadialLarge_put_JogLocation(This,jogPos)	\
    ( (This)->lpVtbl -> put_JogLocation(This,jogPos) ) 

#define IGcadDimRadialLarge_get_JogAngle(This,JogAngle)	\
    ( (This)->lpVtbl -> get_JogAngle(This,JogAngle) ) 

#define IGcadDimRadialLarge_put_JogAngle(This,JogAngle)	\
    ( (This)->lpVtbl -> put_JogAngle(This,JogAngle) ) 

#define IGcadDimRadialLarge_get_Center(This,pVar)	\
    ( (This)->lpVtbl -> get_Center(This,pVar) ) 

#define IGcadDimRadialLarge_put_Center(This,pVar)	\
    ( (This)->lpVtbl -> put_Center(This,pVar) ) 

#define IGcadDimRadialLarge_get_ChordPoint(This,pVal)	\
    ( (This)->lpVtbl -> get_ChordPoint(This,pVal) ) 

#define IGcadDimRadialLarge_put_ChordPoint(This,pVal)	\
    ( (This)->lpVtbl -> put_ChordPoint(This,pVal) ) 

#define IGcadDimRadialLarge_get_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_DimensionLinetype(This,Linetype) ) 

#define IGcadDimRadialLarge_put_DimensionLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_DimensionLinetype(This,Linetype) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_AltTextPrefix_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimRadialLarge_put_AltTextPrefix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_AltTextSuffix_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ BSTR *prefix);


void __RPC_STUB IGcadDimRadialLarge_get_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_AltTextSuffix_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ BSTR prefix);


void __RPC_STUB IGcadDimRadialLarge_put_AltTextSuffix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_CenterType_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ GcDimCenterType *Type);


void __RPC_STUB IGcadDimRadialLarge_get_CenterType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_CenterType_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ GcDimCenterType Type);


void __RPC_STUB IGcadDimRadialLarge_put_CenterType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_CenterMarkSize_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ double *Type);


void __RPC_STUB IGcadDimRadialLarge_get_CenterMarkSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_CenterMarkSize_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ double Type);


void __RPC_STUB IGcadDimRadialLarge_put_CenterMarkSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_DimensionLineColor_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ GCAD_COLOR *Type);


void __RPC_STUB IGcadDimRadialLarge_get_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_DimensionLineColor_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ GCAD_COLOR Type);


void __RPC_STUB IGcadDimRadialLarge_put_DimensionLineColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_PrimaryUnitsPrecision_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ GcDimPrecision *Prec);


void __RPC_STUB IGcadDimRadialLarge_get_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_PrimaryUnitsPrecision_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ GcDimPrecision Prec);


void __RPC_STUB IGcadDimRadialLarge_put_PrimaryUnitsPrecision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_FractionFormat_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ GcDimFractionType *Type);


void __RPC_STUB IGcadDimRadialLarge_get_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_FractionFormat_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ GcDimFractionType Type);


void __RPC_STUB IGcadDimRadialLarge_put_FractionFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_Fit_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ GcDimFit *fittype);


void __RPC_STUB IGcadDimRadialLarge_get_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_Fit_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ GcDimFit fittype);


void __RPC_STUB IGcadDimRadialLarge_put_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_LinearScaleFactor_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ GCAD_NOUNITS *Type);


void __RPC_STUB IGcadDimRadialLarge_get_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_LinearScaleFactor_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ GCAD_NOUNITS Type);


void __RPC_STUB IGcadDimRadialLarge_put_LinearScaleFactor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_UnitsFormat_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ GcDimLUnits *format);


void __RPC_STUB IGcadDimRadialLarge_get_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_UnitsFormat_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ GcDimLUnits format);


void __RPC_STUB IGcadDimRadialLarge_put_UnitsFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_RoundDistance_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ double *Distance);


void __RPC_STUB IGcadDimRadialLarge_get_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_RoundDistance_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ double Distance);


void __RPC_STUB IGcadDimRadialLarge_put_RoundDistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_DimLineSuppress_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bSuppress);


void __RPC_STUB IGcadDimRadialLarge_get_DimLineSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_DimLineSuppress_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bSuppress);


void __RPC_STUB IGcadDimRadialLarge_put_DimLineSuppress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_TextInsideAlign_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRadialLarge_get_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_TextInsideAlign_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRadialLarge_put_TextInsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_TextInside_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRadialLarge_get_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_TextInside_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRadialLarge_put_TextInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_ForceLineInside_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRadialLarge_get_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_ForceLineInside_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRadialLarge_put_ForceLineInside_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_TextOutsideAlign_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bInside);


void __RPC_STUB IGcadDimRadialLarge_get_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_TextOutsideAlign_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bInside);


void __RPC_STUB IGcadDimRadialLarge_put_TextOutsideAlign_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_AltSuppressLeadingZeros_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_AltSuppressLeadingZeros_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_AltSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_AltSuppressTrailingZeros_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_AltSuppressTrailingZeros_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_AltSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_AltSuppressZeroFeet_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_AltSuppressZeroFeet_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_AltSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_AltSuppressZeroInches_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_AltSuppressZeroInches_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_AltSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_AltToleranceSuppressLeadingZeros_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_AltToleranceSuppressLeadingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_AltToleranceSuppressTrailingZeros_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_AltToleranceSuppressTrailingZeros_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_AltToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_AltToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_AltToleranceSuppressZeroInches_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_AltToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_SuppressZeroFeet_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_SuppressZeroFeet_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_SuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_SuppressZeroInches_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_SuppressZeroInches_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_SuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_ToleranceSuppressZeroFeet_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_ToleranceSuppressZeroFeet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT_BOOL *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_ToleranceSuppressZeroInches_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT_BOOL bVal);


void __RPC_STUB IGcadDimRadialLarge_put_ToleranceSuppressZeroInches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_DimensionLineWeight_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ GCAD_LWEIGHT *weight);


void __RPC_STUB IGcadDimRadialLarge_get_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_DimensionLineWeight_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ GCAD_LWEIGHT weight);


void __RPC_STUB IGcadDimRadialLarge_put_DimensionLineWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_ArrowheadSize_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ double *size);


void __RPC_STUB IGcadDimRadialLarge_get_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_ArrowheadSize_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ double size);


void __RPC_STUB IGcadDimRadialLarge_put_ArrowheadSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_ArrowheadType_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ GcDimArrowheadType *Type);


void __RPC_STUB IGcadDimRadialLarge_get_ArrowheadType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_ArrowheadType_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ GcDimArrowheadType Type);


void __RPC_STUB IGcadDimRadialLarge_put_ArrowheadType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_Measurement_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ double *bVal);


void __RPC_STUB IGcadDimRadialLarge_get_Measurement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_ArrowheadBlock_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ BSTR *BlockName);


void __RPC_STUB IGcadDimRadialLarge_get_ArrowheadBlock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_ArrowheadBlock_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ BSTR BlockName);


void __RPC_STUB IGcadDimRadialLarge_put_ArrowheadBlock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_OverrideCenter_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT *overrideCenterPos);


void __RPC_STUB IGcadDimRadialLarge_get_OverrideCenter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_OverrideCenter_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT overrideCenterPos);


void __RPC_STUB IGcadDimRadialLarge_put_OverrideCenter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_JogLocation_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT *jogPos);


void __RPC_STUB IGcadDimRadialLarge_get_JogLocation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_JogLocation_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT jogPos);


void __RPC_STUB IGcadDimRadialLarge_put_JogLocation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_JogAngle_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ GCAD_ANGLE *JogAngle);


void __RPC_STUB IGcadDimRadialLarge_get_JogAngle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_JogAngle_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ GCAD_ANGLE JogAngle);


void __RPC_STUB IGcadDimRadialLarge_put_JogAngle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_Center_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT *pVar);


void __RPC_STUB IGcadDimRadialLarge_get_Center_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_Center_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT pVar);


void __RPC_STUB IGcadDimRadialLarge_put_Center_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_ChordPoint_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IGcadDimRadialLarge_get_ChordPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_ChordPoint_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IGcadDimRadialLarge_put_ChordPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_get_DimensionLinetype_Proxy( 
    IGcadDimRadialLarge * This,
    /* [retval][out] */ BSTR *Linetype);


void __RPC_STUB IGcadDimRadialLarge_get_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadDimRadialLarge_put_DimensionLinetype_Proxy( 
    IGcadDimRadialLarge * This,
    /* [in] */ BSTR Linetype);


void __RPC_STUB IGcadDimRadialLarge_put_DimensionLinetype_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGcadDimRadialLarge_INTERFACE_DEFINED__ */


#ifndef __IGcadSection_INTERFACE_DEFINED__
#define __IGcadSection_INTERFACE_DEFINED__

/* interface IGcadSection */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadSection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("13C9B549-488C-48B2-A7D1-9B299FEE3C22")
    IGcadSection : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pbstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR pbstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_State( 
            /* [retval][out] */ GcSectionState *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_State( 
            /* [in] */ GcSectionState pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ViewingDirection( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ViewingDirection( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VerticalDirection( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_VerticalDirection( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LiveSectionEnabled( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LiveSectionEnabled( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IndicatorTransparency( 
            /* [retval][out] */ int *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IndicatorTransparency( 
            /* [in] */ int pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IndicatorFillColor( 
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IndicatorFillColor( 
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Elevation( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Elevation( 
            /* [in] */ double pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TopHeight( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TopHeight( 
            /* [in] */ double pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BottomHeight( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BottomHeight( 
            /* [in] */ double pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NumVertices( 
            /* [retval][out] */ int *pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Vertices( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Vertices( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinate( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinate( 
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddVertex( 
            /* [in] */ int nIndex,
            /* [in] */ VARIANT val) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveVertex( 
            /* [in] */ int nIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HitTest( 
            /* [in] */ VARIANT varPtHit,
            /* [out] */ VARIANT_BOOL *pHit,
            /* [out] */ int *pSegmentIndex,
            /* [out] */ VARIANT *pPtOnSegment,
            /* [out] */ GcSectionSubItem *pSubItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateJog( 
            /* [in] */ VARIANT varPt) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Settings( 
            /* [retval][out] */ IGcadSectionSettings **pUnk) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GenerateSectionGeometry( 
            /* [in] */ IGcadEntity *pEntity,
            /* [out] */ VARIANT *pIntersectionBoundaryObjs,
            /* [out] */ VARIANT *pIntersectionFillObjs,
            /* [out] */ VARIANT *pBackgroudnObjs,
            /* [out] */ VARIANT *pForegroudObjs,
            /* [out] */ VARIANT *pCurveTangencyObjs) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSectionVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSection * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSection * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSection * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSection * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSection * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadSection * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSection * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadSection * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadSection * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadSection * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadSection * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadSection * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadSection * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadSection * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadSection * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadSection * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadSection * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadSection * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadSection * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadSection * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSection * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadSection * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSection * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadSection * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSection * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadSection * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadSection * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadSection * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadSection * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadSection * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadSection * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadSection * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadSection * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadSection * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadSection * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadSection * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadSection * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadSection * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadSection * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadSection * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadSection * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadSection * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSection * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadSection * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSection * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadSection * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadSection * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadSection * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSection * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadSection * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadSection * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadSection * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadSection * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSection * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSection * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadSection * This,
            /* [retval][out] */ BSTR *pbstrName);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadSection * This,
            /* [in] */ BSTR pbstrName);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_State)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_State )( 
            IGcadSection * This,
            /* [retval][out] */ GcSectionState *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_State)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_State )( 
            IGcadSection * This,
            /* [in] */ GcSectionState pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_ViewingDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ViewingDirection )( 
            IGcadSection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_ViewingDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ViewingDirection )( 
            IGcadSection * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_VerticalDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalDirection )( 
            IGcadSection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_VerticalDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalDirection )( 
            IGcadSection * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadSection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_LiveSectionEnabled)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LiveSectionEnabled )( 
            IGcadSection * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_LiveSectionEnabled)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LiveSectionEnabled )( 
            IGcadSection * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_IndicatorTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IndicatorTransparency )( 
            IGcadSection * This,
            /* [retval][out] */ int *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_IndicatorTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IndicatorTransparency )( 
            IGcadSection * This,
            /* [in] */ int pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_IndicatorFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IndicatorFillColor )( 
            IGcadSection * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_IndicatorFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IndicatorFillColor )( 
            IGcadSection * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Elevation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Elevation )( 
            IGcadSection * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_Elevation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Elevation )( 
            IGcadSection * This,
            /* [in] */ double pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_TopHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TopHeight )( 
            IGcadSection * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_TopHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TopHeight )( 
            IGcadSection * This,
            /* [in] */ double pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_BottomHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BottomHeight )( 
            IGcadSection * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_BottomHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BottomHeight )( 
            IGcadSection * This,
            /* [in] */ double pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_NumVertices)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumVertices )( 
            IGcadSection * This,
            /* [retval][out] */ int *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Vertices)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Vertices )( 
            IGcadSection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_Vertices)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Vertices )( 
            IGcadSection * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcadSection * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcadSection * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, AddVertex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddVertex )( 
            IGcadSection * This,
            /* [in] */ int nIndex,
            /* [in] */ VARIANT val);
        
        DECLSPEC_XFGVIRT(IGcadSection, RemoveVertex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveVertex )( 
            IGcadSection * This,
            /* [in] */ int nIndex);
        
        DECLSPEC_XFGVIRT(IGcadSection, HitTest)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HitTest )( 
            IGcadSection * This,
            /* [in] */ VARIANT varPtHit,
            /* [out] */ VARIANT_BOOL *pHit,
            /* [out] */ int *pSegmentIndex,
            /* [out] */ VARIANT *pPtOnSegment,
            /* [out] */ GcSectionSubItem *pSubItem);
        
        DECLSPEC_XFGVIRT(IGcadSection, CreateJog)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateJog )( 
            IGcadSection * This,
            /* [in] */ VARIANT varPt);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Settings)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Settings )( 
            IGcadSection * This,
            /* [retval][out] */ IGcadSectionSettings **pUnk);
        
        DECLSPEC_XFGVIRT(IGcadSection, GenerateSectionGeometry)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GenerateSectionGeometry )( 
            IGcadSection * This,
            /* [in] */ IGcadEntity *pEntity,
            /* [out] */ VARIANT *pIntersectionBoundaryObjs,
            /* [out] */ VARIANT *pIntersectionFillObjs,
            /* [out] */ VARIANT *pBackgroudnObjs,
            /* [out] */ VARIANT *pForegroudObjs,
            /* [out] */ VARIANT *pCurveTangencyObjs);
        
        END_INTERFACE
    } IGcadSectionVtbl;

    interface IGcadSection
    {
        CONST_VTBL struct IGcadSectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSection_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSection_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSection_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSection_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSection_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadSection_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSection_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadSection_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadSection_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadSection_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadSection_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadSection_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadSection_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadSection_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadSection_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadSection_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadSection_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadSection_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadSection_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadSection_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSection_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadSection_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSection_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadSection_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSection_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadSection_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadSection_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadSection_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadSection_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadSection_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadSection_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadSection_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadSection_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadSection_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadSection_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadSection_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadSection_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadSection_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadSection_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadSection_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadSection_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadSection_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSection_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadSection_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSection_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadSection_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadSection_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadSection_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadSection_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadSection_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadSection_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadSection_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadSection_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadSection_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadSection_get_Name(This,pbstrName)	\
    ( (This)->lpVtbl -> get_Name(This,pbstrName) ) 

#define IGcadSection_put_Name(This,pbstrName)	\
    ( (This)->lpVtbl -> put_Name(This,pbstrName) ) 

#define IGcadSection_get_State(This,pVal)	\
    ( (This)->lpVtbl -> get_State(This,pVal) ) 

#define IGcadSection_put_State(This,pVal)	\
    ( (This)->lpVtbl -> put_State(This,pVal) ) 

#define IGcadSection_get_ViewingDirection(This,pVal)	\
    ( (This)->lpVtbl -> get_ViewingDirection(This,pVal) ) 

#define IGcadSection_put_ViewingDirection(This,pVal)	\
    ( (This)->lpVtbl -> put_ViewingDirection(This,pVal) ) 

#define IGcadSection_get_VerticalDirection(This,pVal)	\
    ( (This)->lpVtbl -> get_VerticalDirection(This,pVal) ) 

#define IGcadSection_put_VerticalDirection(This,pVal)	\
    ( (This)->lpVtbl -> put_VerticalDirection(This,pVal) ) 

#define IGcadSection_get_Normal(This,pVal)	\
    ( (This)->lpVtbl -> get_Normal(This,pVal) ) 

#define IGcadSection_get_LiveSectionEnabled(This,pVal)	\
    ( (This)->lpVtbl -> get_LiveSectionEnabled(This,pVal) ) 

#define IGcadSection_put_LiveSectionEnabled(This,pVal)	\
    ( (This)->lpVtbl -> put_LiveSectionEnabled(This,pVal) ) 

#define IGcadSection_get_IndicatorTransparency(This,pVal)	\
    ( (This)->lpVtbl -> get_IndicatorTransparency(This,pVal) ) 

#define IGcadSection_put_IndicatorTransparency(This,pVal)	\
    ( (This)->lpVtbl -> put_IndicatorTransparency(This,pVal) ) 

#define IGcadSection_get_IndicatorFillColor(This,pColor)	\
    ( (This)->lpVtbl -> get_IndicatorFillColor(This,pColor) ) 

#define IGcadSection_put_IndicatorFillColor(This,pColor)	\
    ( (This)->lpVtbl -> put_IndicatorFillColor(This,pColor) ) 

#define IGcadSection_get_Elevation(This,pVal)	\
    ( (This)->lpVtbl -> get_Elevation(This,pVal) ) 

#define IGcadSection_put_Elevation(This,pVal)	\
    ( (This)->lpVtbl -> put_Elevation(This,pVal) ) 

#define IGcadSection_get_TopHeight(This,pVal)	\
    ( (This)->lpVtbl -> get_TopHeight(This,pVal) ) 

#define IGcadSection_put_TopHeight(This,pVal)	\
    ( (This)->lpVtbl -> put_TopHeight(This,pVal) ) 

#define IGcadSection_get_BottomHeight(This,pVal)	\
    ( (This)->lpVtbl -> get_BottomHeight(This,pVal) ) 

#define IGcadSection_put_BottomHeight(This,pVal)	\
    ( (This)->lpVtbl -> put_BottomHeight(This,pVal) ) 

#define IGcadSection_get_NumVertices(This,pVal)	\
    ( (This)->lpVtbl -> get_NumVertices(This,pVal) ) 

#define IGcadSection_get_Vertices(This,pVal)	\
    ( (This)->lpVtbl -> get_Vertices(This,pVal) ) 

#define IGcadSection_put_Vertices(This,pVal)	\
    ( (This)->lpVtbl -> put_Vertices(This,pVal) ) 

#define IGcadSection_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcadSection_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#define IGcadSection_AddVertex(This,nIndex,val)	\
    ( (This)->lpVtbl -> AddVertex(This,nIndex,val) ) 

#define IGcadSection_RemoveVertex(This,nIndex)	\
    ( (This)->lpVtbl -> RemoveVertex(This,nIndex) ) 

#define IGcadSection_HitTest(This,varPtHit,pHit,pSegmentIndex,pPtOnSegment,pSubItem)	\
    ( (This)->lpVtbl -> HitTest(This,varPtHit,pHit,pSegmentIndex,pPtOnSegment,pSubItem) ) 

#define IGcadSection_CreateJog(This,varPt)	\
    ( (This)->lpVtbl -> CreateJog(This,varPt) ) 

#define IGcadSection_get_Settings(This,pUnk)	\
    ( (This)->lpVtbl -> get_Settings(This,pUnk) ) 

#define IGcadSection_GenerateSectionGeometry(This,pEntity,pIntersectionBoundaryObjs,pIntersectionFillObjs,pBackgroudnObjs,pForegroudObjs,pCurveTangencyObjs)	\
    ( (This)->lpVtbl -> GenerateSectionGeometry(This,pEntity,pIntersectionBoundaryObjs,pIntersectionFillObjs,pBackgroudnObjs,pForegroudObjs,pCurveTangencyObjs) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSection_INTERFACE_DEFINED__ */


#ifndef __IGcadSectionSettings_INTERFACE_DEFINED__
#define __IGcadSectionSettings_INTERFACE_DEFINED__

/* interface IGcadSectionSettings */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadSectionSettings;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AC4451F8-ED8E-42F0-B10D-1345A423FA33")
    IGcadSectionSettings : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CurrentSectionType( 
            /* [retval][out] */ GcSectionType *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CurrentSectionType( 
            /* [in] */ GcSectionType pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSectionTypeSettings( 
            /* [in] */ GcSectionType secType,
            /* [retval][out] */ IGcadSectionTypeSettings **pUnk) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSectionSettingsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSectionSettings * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSectionSettings * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSectionSettings * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSectionSettings * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSectionSettings * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSectionSettings * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSectionSettings * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadSectionSettings * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSectionSettings * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadSectionSettings * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadSectionSettings * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadSectionSettings * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadSectionSettings * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadSectionSettings * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadSectionSettings * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadSectionSettings * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadSectionSettings * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadSectionSettings * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadSectionSettings * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadSectionSettings * This);
        
        DECLSPEC_XFGVIRT(IGcadSectionSettings, get_CurrentSectionType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentSectionType )( 
            IGcadSectionSettings * This,
            /* [retval][out] */ GcSectionType *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionSettings, put_CurrentSectionType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurrentSectionType )( 
            IGcadSectionSettings * This,
            /* [in] */ GcSectionType pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionSettings, GetSectionTypeSettings)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSectionTypeSettings )( 
            IGcadSectionSettings * This,
            /* [in] */ GcSectionType secType,
            /* [retval][out] */ IGcadSectionTypeSettings **pUnk);
        
        END_INTERFACE
    } IGcadSectionSettingsVtbl;

    interface IGcadSectionSettings
    {
        CONST_VTBL struct IGcadSectionSettingsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSectionSettings_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSectionSettings_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSectionSettings_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSectionSettings_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSectionSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSectionSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSectionSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSectionSettings_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadSectionSettings_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSectionSettings_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadSectionSettings_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadSectionSettings_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadSectionSettings_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadSectionSettings_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadSectionSettings_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadSectionSettings_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadSectionSettings_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadSectionSettings_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadSectionSettings_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadSectionSettings_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadSectionSettings_get_CurrentSectionType(This,pVal)	\
    ( (This)->lpVtbl -> get_CurrentSectionType(This,pVal) ) 

#define IGcadSectionSettings_put_CurrentSectionType(This,pVal)	\
    ( (This)->lpVtbl -> put_CurrentSectionType(This,pVal) ) 

#define IGcadSectionSettings_GetSectionTypeSettings(This,secType,pUnk)	\
    ( (This)->lpVtbl -> GetSectionTypeSettings(This,secType,pUnk) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSectionSettings_INTERFACE_DEFINED__ */


#ifndef __IGcadSectionTypeSettings_INTERFACE_DEFINED__
#define __IGcadSectionTypeSettings_INTERFACE_DEFINED__

/* interface IGcadSectionTypeSettings */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadSectionTypeSettings;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4ACE8AF8-EC50-438D-93BF-B5434CE6245B")
    IGcadSectionTypeSettings : public IDispatch
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GenerationOptions( 
            /* [retval][out] */ GcSectionGeneration *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_GenerationOptions( 
            /* [in] */ GcSectionGeneration pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SourceObjects( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SourceObjects( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DestinationBlock( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DestinationBlock( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DestinationFile( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DestinationFile( 
            /* [in] */ BSTR pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionBoundaryColor( 
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionBoundaryColor( 
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionBoundaryLayer( 
            /* [retval][out] */ BSTR *Layer) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionBoundaryLayer( 
            /* [in] */ BSTR Layer) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionBoundaryLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionBoundaryLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionBoundaryLinetypeScale( 
            /* [retval][out] */ GCAD_NOUNITS *ltScale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionBoundaryLinetypeScale( 
            /* [in] */ GCAD_NOUNITS ltScale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionBoundaryPlotStyleName( 
            /* [retval][out] */ BSTR *plotStyle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionBoundaryPlotStyleName( 
            /* [in] */ BSTR plotStyle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionBoundaryLineweight( 
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionBoundaryLineweight( 
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionBoundaryDivisionLines( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionBoundaryDivisionLines( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillVisible( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillVisible( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillHatchPatternType( 
            /* [retval][out] */ GcPatternType *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillHatchPatternType( 
            /* [in] */ GcPatternType pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillHatchPatternName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillHatchPatternName( 
            /* [in] */ BSTR pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillHatchAngle( 
            /* [retval][out] */ GCAD_ANGLE *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillHatchAngle( 
            /* [in] */ GCAD_ANGLE pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillHatchScale( 
            /* [retval][out] */ GCAD_NOUNITS *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillHatchScale( 
            /* [in] */ GCAD_NOUNITS pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillHatchSpacing( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillHatchSpacing( 
            /* [in] */ double pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillColor( 
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillColor( 
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillLayer( 
            /* [retval][out] */ BSTR *Layer) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillLayer( 
            /* [in] */ BSTR Layer) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillLinetypeScale( 
            /* [retval][out] */ GCAD_NOUNITS *ltScale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillLinetypeScale( 
            /* [in] */ GCAD_NOUNITS ltScale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillPlotStyleName( 
            /* [retval][out] */ BSTR *plotStyle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillPlotStyleName( 
            /* [in] */ BSTR plotStyle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillLineweight( 
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillLineweight( 
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionFillFaceTransparency( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionFillFaceTransparency( 
            /* [in] */ long pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackgroundLinesVisible( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackgroundLinesVisible( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackgroundLinesHiddenLine( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackgroundLinesHiddenLine( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackgroundLinesColor( 
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackgroundLinesColor( 
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackgroundLinesLayer( 
            /* [retval][out] */ BSTR *Layer) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackgroundLinesLayer( 
            /* [in] */ BSTR Layer) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackgroundLinesLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackgroundLinesLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackgroundLinesLinetypeScale( 
            /* [retval][out] */ GCAD_NOUNITS *ltScale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackgroundLinesLinetypeScale( 
            /* [in] */ GCAD_NOUNITS ltScale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackgroundLinesPlotStyleName( 
            /* [retval][out] */ BSTR *plotStyle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackgroundLinesPlotStyleName( 
            /* [in] */ BSTR plotStyle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackgroundLinesLineweight( 
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackgroundLinesLineweight( 
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForegroundLinesVisible( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForegroundLinesVisible( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForegroundLinesHiddenLine( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForegroundLinesHiddenLine( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForegroundLinesColor( 
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForegroundLinesColor( 
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForegroundLinesLayer( 
            /* [retval][out] */ BSTR *Layer) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForegroundLinesLayer( 
            /* [in] */ BSTR Layer) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForegroundLinesLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForegroundLinesLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForegroundLinesLinetypeScale( 
            /* [retval][out] */ GCAD_NOUNITS *ltScale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForegroundLinesLinetypeScale( 
            /* [in] */ GCAD_NOUNITS ltScale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForegroundLinesPlotStyleName( 
            /* [retval][out] */ BSTR *plotStyle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForegroundLinesPlotStyleName( 
            /* [in] */ BSTR plotStyle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForegroundLinesLineweight( 
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForegroundLinesLineweight( 
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForegroundLinesFaceTransparency( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForegroundLinesFaceTransparency( 
            /* [in] */ long pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ForegroundLinesEdgeTransparency( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ForegroundLinesEdgeTransparency( 
            /* [in] */ long pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CurveTangencyLinesVisible( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CurveTangencyLinesVisible( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CurveTangencyLinesColor( 
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CurveTangencyLinesColor( 
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CurveTangencyLinesLayer( 
            /* [retval][out] */ BSTR *Layer) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CurveTangencyLinesLayer( 
            /* [in] */ BSTR Layer) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CurveTangencyLinesLinetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CurveTangencyLinesLinetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CurveTangencyLinesLinetypeScale( 
            /* [retval][out] */ GCAD_NOUNITS *ltScale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CurveTangencyLinesLinetypeScale( 
            /* [in] */ GCAD_NOUNITS ltScale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CurveTangencyLinesPlotStyleName( 
            /* [retval][out] */ BSTR *plotStyle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CurveTangencyLinesPlotStyleName( 
            /* [in] */ BSTR plotStyle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CurveTangencyLinesLineweight( 
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CurveTangencyLinesLineweight( 
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSectionTypeSettingsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSectionTypeSettings * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSectionTypeSettings * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSectionTypeSettings * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSectionTypeSettings * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_GenerationOptions)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GenerationOptions )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GcSectionGeneration *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_GenerationOptions)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GenerationOptions )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GcSectionGeneration pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_SourceObjects)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SourceObjects )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_SourceObjects)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SourceObjects )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_DestinationBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DestinationBlock )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_DestinationBlock)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DestinationBlock )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_DestinationFile)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DestinationFile )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_DestinationFile)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DestinationFile )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryColor )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryColor )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryLayer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryLayer )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryLayer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryLayer )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryLinetype )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryLinetype )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryLinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryLinetypeScale )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryLinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryLinetypeScale )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryPlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryPlotStyleName )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryPlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryPlotStyleName )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryLineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryLineweight )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryLineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryLineweight )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryDivisionLines)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryDivisionLines )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryDivisionLines)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryDivisionLines )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillVisible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillVisible )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillVisible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillVisible )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillHatchPatternType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillHatchPatternType )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GcPatternType *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillHatchPatternType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillHatchPatternType )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GcPatternType pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillHatchPatternName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillHatchPatternName )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillHatchPatternName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillHatchPatternName )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillHatchAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillHatchAngle )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_ANGLE *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillHatchAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillHatchAngle )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_ANGLE pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillHatchScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillHatchScale )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_NOUNITS *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillHatchScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillHatchScale )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_NOUNITS pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillHatchSpacing)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillHatchSpacing )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillHatchSpacing)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillHatchSpacing )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ double pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillColor )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillColor )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillLayer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillLayer )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillLayer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillLayer )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillLinetype )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillLinetype )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillLinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillLinetypeScale )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillLinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillLinetypeScale )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillPlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillPlotStyleName )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillPlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillPlotStyleName )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillLineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillLineweight )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillLineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillLineweight )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillFaceTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillFaceTransparency )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillFaceTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillFaceTransparency )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ long pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesVisible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesVisible )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesVisible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesVisible )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesHiddenLine)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesHiddenLine )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesHiddenLine)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesHiddenLine )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesColor )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesColor )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesLayer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesLayer )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesLayer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesLayer )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesLinetype )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesLinetype )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesLinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesLinetypeScale )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesLinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesLinetypeScale )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesPlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesPlotStyleName )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesPlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesPlotStyleName )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesLineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesLineweight )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesLineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesLineweight )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesVisible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesVisible )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesVisible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesVisible )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesHiddenLine)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesHiddenLine )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesHiddenLine)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesHiddenLine )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesColor )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesColor )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesLayer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesLayer )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesLayer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesLayer )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesLinetype )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesLinetype )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesLinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesLinetypeScale )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesLinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesLinetypeScale )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesPlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesPlotStyleName )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesPlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesPlotStyleName )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesLineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesLineweight )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesLineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesLineweight )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesFaceTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesFaceTransparency )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesFaceTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesFaceTransparency )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ long pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesEdgeTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesEdgeTransparency )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesEdgeTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesEdgeTransparency )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ long pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesVisible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesVisible )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesVisible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesVisible )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesColor )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesColor )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesLayer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesLayer )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesLayer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesLayer )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesLinetype )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesLinetype )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesLinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesLinetypeScale )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesLinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesLinetypeScale )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesPlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesPlotStyleName )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesPlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesPlotStyleName )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesLineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesLineweight )( 
            IGcadSectionTypeSettings * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesLineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesLineweight )( 
            IGcadSectionTypeSettings * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        END_INTERFACE
    } IGcadSectionTypeSettingsVtbl;

    interface IGcadSectionTypeSettings
    {
        CONST_VTBL struct IGcadSectionTypeSettingsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSectionTypeSettings_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSectionTypeSettings_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSectionTypeSettings_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSectionTypeSettings_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSectionTypeSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSectionTypeSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSectionTypeSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSectionTypeSettings_get_GenerationOptions(This,pVal)	\
    ( (This)->lpVtbl -> get_GenerationOptions(This,pVal) ) 

#define IGcadSectionTypeSettings_put_GenerationOptions(This,pVal)	\
    ( (This)->lpVtbl -> put_GenerationOptions(This,pVal) ) 

#define IGcadSectionTypeSettings_get_SourceObjects(This,pVal)	\
    ( (This)->lpVtbl -> get_SourceObjects(This,pVal) ) 

#define IGcadSectionTypeSettings_put_SourceObjects(This,pVal)	\
    ( (This)->lpVtbl -> put_SourceObjects(This,pVal) ) 

#define IGcadSectionTypeSettings_get_DestinationBlock(This,pVal)	\
    ( (This)->lpVtbl -> get_DestinationBlock(This,pVal) ) 

#define IGcadSectionTypeSettings_put_DestinationBlock(This,pVal)	\
    ( (This)->lpVtbl -> put_DestinationBlock(This,pVal) ) 

#define IGcadSectionTypeSettings_get_DestinationFile(This,pVal)	\
    ( (This)->lpVtbl -> get_DestinationFile(This,pVal) ) 

#define IGcadSectionTypeSettings_put_DestinationFile(This,pVal)	\
    ( (This)->lpVtbl -> put_DestinationFile(This,pVal) ) 

#define IGcadSectionTypeSettings_get_IntersectionBoundaryColor(This,pColor)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryColor(This,pColor) ) 

#define IGcadSectionTypeSettings_put_IntersectionBoundaryColor(This,pColor)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryColor(This,pColor) ) 

#define IGcadSectionTypeSettings_get_IntersectionBoundaryLayer(This,Layer)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryLayer(This,Layer) ) 

#define IGcadSectionTypeSettings_put_IntersectionBoundaryLayer(This,Layer)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryLayer(This,Layer) ) 

#define IGcadSectionTypeSettings_get_IntersectionBoundaryLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings_put_IntersectionBoundaryLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings_get_IntersectionBoundaryLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings_put_IntersectionBoundaryLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings_get_IntersectionBoundaryPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings_put_IntersectionBoundaryPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings_get_IntersectionBoundaryLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings_put_IntersectionBoundaryLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings_get_IntersectionBoundaryDivisionLines(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryDivisionLines(This,pVal) ) 

#define IGcadSectionTypeSettings_put_IntersectionBoundaryDivisionLines(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryDivisionLines(This,pVal) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillVisible(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillVisible(This,pVal) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillVisible(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillVisible(This,pVal) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillHatchPatternType(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillHatchPatternType(This,pVal) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillHatchPatternType(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillHatchPatternType(This,pVal) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillHatchPatternName(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillHatchPatternName(This,pVal) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillHatchPatternName(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillHatchPatternName(This,pVal) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillHatchAngle(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillHatchAngle(This,pVal) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillHatchAngle(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillHatchAngle(This,pVal) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillHatchScale(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillHatchScale(This,pVal) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillHatchScale(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillHatchScale(This,pVal) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillHatchSpacing(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillHatchSpacing(This,pVal) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillHatchSpacing(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillHatchSpacing(This,pVal) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillColor(This,pColor)	\
    ( (This)->lpVtbl -> get_IntersectionFillColor(This,pColor) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillColor(This,pColor)	\
    ( (This)->lpVtbl -> put_IntersectionFillColor(This,pColor) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillLayer(This,Layer)	\
    ( (This)->lpVtbl -> get_IntersectionFillLayer(This,Layer) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillLayer(This,Layer)	\
    ( (This)->lpVtbl -> put_IntersectionFillLayer(This,Layer) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_IntersectionFillLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_IntersectionFillLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_IntersectionFillLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_IntersectionFillLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_IntersectionFillPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_IntersectionFillPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_IntersectionFillLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_IntersectionFillLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings_get_IntersectionFillFaceTransparency(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillFaceTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings_put_IntersectionFillFaceTransparency(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillFaceTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings_get_BackgroundLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> get_BackgroundLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings_put_BackgroundLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> put_BackgroundLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings_get_BackgroundLinesHiddenLine(This,pVal)	\
    ( (This)->lpVtbl -> get_BackgroundLinesHiddenLine(This,pVal) ) 

#define IGcadSectionTypeSettings_put_BackgroundLinesHiddenLine(This,pVal)	\
    ( (This)->lpVtbl -> put_BackgroundLinesHiddenLine(This,pVal) ) 

#define IGcadSectionTypeSettings_get_BackgroundLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> get_BackgroundLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings_put_BackgroundLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> put_BackgroundLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings_get_BackgroundLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> get_BackgroundLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings_put_BackgroundLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> put_BackgroundLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings_get_BackgroundLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_BackgroundLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings_put_BackgroundLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_BackgroundLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings_get_BackgroundLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_BackgroundLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings_put_BackgroundLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_BackgroundLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings_get_BackgroundLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_BackgroundLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings_put_BackgroundLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_BackgroundLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings_get_BackgroundLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_BackgroundLinesLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings_put_BackgroundLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_BackgroundLinesLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings_get_ForegroundLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> get_ForegroundLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings_put_ForegroundLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> put_ForegroundLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings_get_ForegroundLinesHiddenLine(This,pVal)	\
    ( (This)->lpVtbl -> get_ForegroundLinesHiddenLine(This,pVal) ) 

#define IGcadSectionTypeSettings_put_ForegroundLinesHiddenLine(This,pVal)	\
    ( (This)->lpVtbl -> put_ForegroundLinesHiddenLine(This,pVal) ) 

#define IGcadSectionTypeSettings_get_ForegroundLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> get_ForegroundLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings_put_ForegroundLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> put_ForegroundLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings_get_ForegroundLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> get_ForegroundLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings_put_ForegroundLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> put_ForegroundLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings_get_ForegroundLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ForegroundLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings_put_ForegroundLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ForegroundLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings_get_ForegroundLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_ForegroundLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings_put_ForegroundLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_ForegroundLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings_get_ForegroundLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_ForegroundLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings_put_ForegroundLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_ForegroundLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings_get_ForegroundLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_ForegroundLinesLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings_put_ForegroundLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_ForegroundLinesLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings_get_ForegroundLinesFaceTransparency(This,pVal)	\
    ( (This)->lpVtbl -> get_ForegroundLinesFaceTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings_put_ForegroundLinesFaceTransparency(This,pVal)	\
    ( (This)->lpVtbl -> put_ForegroundLinesFaceTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings_get_ForegroundLinesEdgeTransparency(This,pVal)	\
    ( (This)->lpVtbl -> get_ForegroundLinesEdgeTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings_put_ForegroundLinesEdgeTransparency(This,pVal)	\
    ( (This)->lpVtbl -> put_ForegroundLinesEdgeTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings_get_CurveTangencyLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings_put_CurveTangencyLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings_get_CurveTangencyLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings_put_CurveTangencyLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings_get_CurveTangencyLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings_put_CurveTangencyLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings_get_CurveTangencyLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings_put_CurveTangencyLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings_get_CurveTangencyLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings_put_CurveTangencyLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings_get_CurveTangencyLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings_put_CurveTangencyLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings_get_CurveTangencyLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings_put_CurveTangencyLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesLineweight(This,Lineweight) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSectionTypeSettings_INTERFACE_DEFINED__ */


#ifndef __IGcadMLeader_INTERFACE_DEFINED__
#define __IGcadMLeader_INTERFACE_DEFINED__

/* interface IGcadMLeader */
/* [object][unique][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadMLeader;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("59898AB2-E779-4D7C-B77C-86E9E10B2226")
    IGcadMLeader : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor( 
            /* [retval][out] */ double *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor( 
            /* [in] */ double scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderType( 
            /* [retval][out] */ GcMLeaderType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderType( 
            /* [in] */ GcMLeaderType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderLineColor( 
            /* [retval][out] */ IGcadGcCmColor **Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLineColor( 
            /* [in] */ IGcadGcCmColor *Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderLinetype( 
            /* [retval][out] */ GCAD_LTYPE *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLinetype( 
            /* [in] */ GCAD_LTYPE Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLineWeight( 
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadType( 
            /* [retval][out] */ GcDimArrowheadType *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadType( 
            /* [in] */ GcDimArrowheadType BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DogLegged( 
            /* [retval][out] */ VARIANT_BOOL *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DogLegged( 
            /* [in] */ VARIANT_BOOL val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DoglegLength( 
            /* [retval][out] */ double *DoglegLength) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DoglegLength( 
            /* [in] */ double DoglegLength) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ContentBlockName( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ContentBlockName( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BlockConnectionType( 
            /* [retval][out] */ GcBlockConnectionType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BlockConnectionType( 
            /* [in] */ GcBlockConnectionType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BlockScale( 
            /* [retval][out] */ GCAD_NOUNITS *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BlockScale( 
            /* [in] */ GCAD_NOUNITS factor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextString( 
            /* [retval][out] */ BSTR *bstrText) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextString( 
            /* [in] */ BSTR bstrText) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextStyleName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextStyleName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextJustify( 
            /* [retval][out] */ GcAttachmentPoint *attPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextJustify( 
            /* [in] */ GcAttachmentPoint attPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextDirection( 
            /* [retval][out] */ GcDrawingDirection *drawDir) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextDirection( 
            /* [in] */ GcDrawingDirection drawDir) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextWidth( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextWidth( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextHeight( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextHeight( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextRotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextRotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextLineSpacingFactor( 
            /* [retval][out] */ double *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextLineSpacingFactor( 
            /* [in] */ double factor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextLineSpacingDistance( 
            /* [retval][out] */ double *Value) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextLineSpacingDistance( 
            /* [in] */ double Value) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextLineSpacingStyle( 
            /* [retval][out] */ GcLineSpacingStyle *style) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextLineSpacingStyle( 
            /* [in] */ GcLineSpacingStyle style) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextBackgroundFill( 
            /* [retval][out] */ VARIANT_BOOL *bUseBackgroundFill) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextBackgroundFill( 
            /* [in] */ VARIANT_BOOL bUseBackgroundFill) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextAttachmentDirection( 
            /* [retval][out] */ GcTextAttachmentDirection *dir) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextAttachmentDirection( 
            /* [in] */ GcTextAttachmentDirection dir) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextLeftAttachmentType( 
            /* [retval][out] */ GcTextAttachmentType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextLeftAttachmentType( 
            /* [in] */ GcTextAttachmentType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextRightAttachmentType( 
            /* [retval][out] */ GcTextAttachmentType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextRightAttachmentType( 
            /* [in] */ GcTextAttachmentType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextTopAttachmentType( 
            /* [retval][out] */ GcVerticalTextAttachmentType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextTopAttachmentType( 
            /* [in] */ GcVerticalTextAttachmentType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextBottomAttachmentType( 
            /* [retval][out] */ GcVerticalTextAttachmentType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextBottomAttachmentType( 
            /* [in] */ GcVerticalTextAttachmentType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LandingGap( 
            /* [retval][out] */ double *gap) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LandingGap( 
            /* [in] */ double gap) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadBlock( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadBlock( 
            /* [in] */ BSTR BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ContentBlockType( 
            /* [retval][out] */ GcPredefBlockType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ContentBlockType( 
            /* [in] */ GcPredefBlockType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderCount( 
            /* [retval][out] */ int *number) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddLeader( 
            /* [retval][out] */ int *leaderIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveLeader( 
            /* [in] */ int leaderIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddLeaderLine( 
            /* [in] */ int leaderIndex,
            /* [in] */ VARIANT pointArray,
            /* [retval][out] */ int *leaderLineIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddLeaderLineEx( 
            /* [in] */ VARIANT pointArray,
            /* [retval][out] */ int *leaderLineIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveLeaderLine( 
            /* [in] */ int leaderLineIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetLeaderLineVertices( 
            /* [in] */ int leaderLineIndex,
            /* [in] */ VARIANT pointArray) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLeaderLineVertices( 
            /* [in] */ int leaderLineIndex,
            /* [retval][out] */ VARIANT *pointArray) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ContentType( 
            /* [in] */ GcMLeaderContentType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ContentType( 
            /* [retval][out] */ GcMLeaderContentType *Type) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLeaderIndex( 
            /* [in] */ int leaderLineIndex,
            /* [retval][out] */ int *leaderIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLeaderLineIndexes( 
            /* [in] */ int leaderIndex,
            /* [retval][out] */ VARIANT *leaderLineIndexes) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetVertexCount( 
            /* [in] */ int leaderLineIndex,
            /* [retval][out] */ int *number) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextFrameDisplay( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextFrameDisplay( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleName( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StyleName( 
            /* [in] */ BSTR Name) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDoglegDirection( 
            /* [in] */ int leaderIndex,
            /* [retval][out] */ VARIANT *dirVec) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetDoglegDirection( 
            /* [in] */ int leaderIndex,
            /* [in] */ VARIANT dirVec) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBlockAttributeValue( 
            /* [in] */ LONG_PTR attdefId,
            /* [retval][out] */ BSTR *Value) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBlockAttributeValue( 
            /* [in] */ LONG_PTR attdefId,
            /* [in] */ BSTR Value) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadMLeaderVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadMLeader * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadMLeader * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadMLeader * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadMLeader * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadMLeader * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadMLeader * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadMLeader * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadMLeader * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadMLeader * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadMLeader * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadMLeader * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadMLeader * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadMLeader * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadMLeader * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadMLeader * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadMLeader * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadMLeader * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadMLeader * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadMLeader * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadMLeader * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadMLeader * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadMLeader * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadMLeader * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadMLeader * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadMLeader * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadMLeader * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadMLeader * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadMLeader * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadMLeader * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadMLeader * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadMLeader * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadMLeader * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadMLeader * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadMLeader * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadMLeader * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadMLeader * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadMLeader * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadMLeader * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadMLeader * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadMLeader * This,
            /* [retval][out] */ double *scale);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadMLeader * This,
            /* [in] */ double scale);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_LeaderType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderType )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcMLeaderType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_LeaderType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderType )( 
            IGcadMLeader * This,
            /* [in] */ GcMLeaderType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_LeaderLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderLineColor )( 
            IGcadMLeader * This,
            /* [retval][out] */ IGcadGcCmColor **Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_LeaderLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLineColor )( 
            IGcadMLeader * This,
            /* [in] */ IGcadGcCmColor *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_LeaderLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderLinetype )( 
            IGcadMLeader * This,
            /* [retval][out] */ GCAD_LTYPE *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_LeaderLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLinetype )( 
            IGcadMLeader * This,
            /* [in] */ GCAD_LTYPE Linetype);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_LeaderLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderLineWeight )( 
            IGcadMLeader * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_LeaderLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLineWeight )( 
            IGcadMLeader * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_ArrowheadType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadType )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcDimArrowheadType *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_ArrowheadType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadType )( 
            IGcadMLeader * This,
            /* [in] */ GcDimArrowheadType BlockName);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadMLeader * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadMLeader * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_DogLegged)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DogLegged )( 
            IGcadMLeader * This,
            /* [retval][out] */ VARIANT_BOOL *val);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_DogLegged)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DogLegged )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT_BOOL val);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_DoglegLength)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoglegLength )( 
            IGcadMLeader * This,
            /* [retval][out] */ double *DoglegLength);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_DoglegLength)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoglegLength )( 
            IGcadMLeader * This,
            /* [in] */ double DoglegLength);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_ContentBlockName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContentBlockName )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_ContentBlockName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContentBlockName )( 
            IGcadMLeader * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_BlockConnectionType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BlockConnectionType )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcBlockConnectionType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_BlockConnectionType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BlockConnectionType )( 
            IGcadMLeader * This,
            /* [in] */ GcBlockConnectionType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_BlockScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BlockScale )( 
            IGcadMLeader * This,
            /* [retval][out] */ GCAD_NOUNITS *factor);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_BlockScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BlockScale )( 
            IGcadMLeader * This,
            /* [in] */ GCAD_NOUNITS factor);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextString)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextString )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextString)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextString )( 
            IGcadMLeader * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyleName )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyleName )( 
            IGcadMLeader * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextJustify)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextJustify )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcAttachmentPoint *attPoint);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextJustify)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextJustify )( 
            IGcadMLeader * This,
            /* [in] */ GcAttachmentPoint attPoint);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextDirection )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcDrawingDirection *drawDir);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextDirection )( 
            IGcadMLeader * This,
            /* [in] */ GcDrawingDirection drawDir);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextWidth )( 
            IGcadMLeader * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextWidth )( 
            IGcadMLeader * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadMLeader * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadMLeader * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRotation )( 
            IGcadMLeader * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRotation )( 
            IGcadMLeader * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextLineSpacingFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextLineSpacingFactor )( 
            IGcadMLeader * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextLineSpacingFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextLineSpacingFactor )( 
            IGcadMLeader * This,
            /* [in] */ double factor);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextLineSpacingDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextLineSpacingDistance )( 
            IGcadMLeader * This,
            /* [retval][out] */ double *Value);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextLineSpacingDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextLineSpacingDistance )( 
            IGcadMLeader * This,
            /* [in] */ double Value);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextLineSpacingStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextLineSpacingStyle )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcLineSpacingStyle *style);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextLineSpacingStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextLineSpacingStyle )( 
            IGcadMLeader * This,
            /* [in] */ GcLineSpacingStyle style);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextBackgroundFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextBackgroundFill )( 
            IGcadMLeader * This,
            /* [retval][out] */ VARIANT_BOOL *bUseBackgroundFill);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextBackgroundFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextBackgroundFill )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT_BOOL bUseBackgroundFill);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextAttachmentDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextAttachmentDirection )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcTextAttachmentDirection *dir);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextAttachmentDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextAttachmentDirection )( 
            IGcadMLeader * This,
            /* [in] */ GcTextAttachmentDirection dir);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextLeftAttachmentType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextLeftAttachmentType )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcTextAttachmentType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextLeftAttachmentType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextLeftAttachmentType )( 
            IGcadMLeader * This,
            /* [in] */ GcTextAttachmentType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextRightAttachmentType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRightAttachmentType )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcTextAttachmentType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextRightAttachmentType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRightAttachmentType )( 
            IGcadMLeader * This,
            /* [in] */ GcTextAttachmentType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextTopAttachmentType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextTopAttachmentType )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcVerticalTextAttachmentType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextTopAttachmentType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextTopAttachmentType )( 
            IGcadMLeader * This,
            /* [in] */ GcVerticalTextAttachmentType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextBottomAttachmentType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextBottomAttachmentType )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcVerticalTextAttachmentType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextBottomAttachmentType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextBottomAttachmentType )( 
            IGcadMLeader * This,
            /* [in] */ GcVerticalTextAttachmentType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_LandingGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LandingGap )( 
            IGcadMLeader * This,
            /* [retval][out] */ double *gap);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_LandingGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LandingGap )( 
            IGcadMLeader * This,
            /* [in] */ double gap);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_ArrowheadBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadBlock )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_ArrowheadBlock)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadBlock )( 
            IGcadMLeader * This,
            /* [in] */ BSTR BlockName);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_ContentBlockType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContentBlockType )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcPredefBlockType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_ContentBlockType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContentBlockType )( 
            IGcadMLeader * This,
            /* [in] */ GcPredefBlockType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_LeaderCount)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderCount )( 
            IGcadMLeader * This,
            /* [retval][out] */ int *number);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, AddLeader)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLeader )( 
            IGcadMLeader * This,
            /* [retval][out] */ int *leaderIndex);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, RemoveLeader)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveLeader )( 
            IGcadMLeader * This,
            /* [in] */ int leaderIndex);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, AddLeaderLine)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLeaderLine )( 
            IGcadMLeader * This,
            /* [in] */ int leaderIndex,
            /* [in] */ VARIANT pointArray,
            /* [retval][out] */ int *leaderLineIndex);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, AddLeaderLineEx)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLeaderLineEx )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT pointArray,
            /* [retval][out] */ int *leaderLineIndex);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, RemoveLeaderLine)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveLeaderLine )( 
            IGcadMLeader * This,
            /* [in] */ int leaderLineIndex);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, SetLeaderLineVertices)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLeaderLineVertices )( 
            IGcadMLeader * This,
            /* [in] */ int leaderLineIndex,
            /* [in] */ VARIANT pointArray);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, GetLeaderLineVertices)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLeaderLineVertices )( 
            IGcadMLeader * This,
            /* [in] */ int leaderLineIndex,
            /* [retval][out] */ VARIANT *pointArray);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_ContentType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContentType )( 
            IGcadMLeader * This,
            /* [in] */ GcMLeaderContentType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_ContentType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContentType )( 
            IGcadMLeader * This,
            /* [retval][out] */ GcMLeaderContentType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, GetLeaderIndex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLeaderIndex )( 
            IGcadMLeader * This,
            /* [in] */ int leaderLineIndex,
            /* [retval][out] */ int *leaderIndex);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, GetLeaderLineIndexes)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLeaderLineIndexes )( 
            IGcadMLeader * This,
            /* [in] */ int leaderIndex,
            /* [retval][out] */ VARIANT *leaderLineIndexes);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, GetVertexCount)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetVertexCount )( 
            IGcadMLeader * This,
            /* [in] */ int leaderLineIndex,
            /* [retval][out] */ int *number);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_TextFrameDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFrameDisplay )( 
            IGcadMLeader * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_TextFrameDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFrameDisplay )( 
            IGcadMLeader * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadMLeader * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadMLeader * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, GetDoglegDirection)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDoglegDirection )( 
            IGcadMLeader * This,
            /* [in] */ int leaderIndex,
            /* [retval][out] */ VARIANT *dirVec);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, SetDoglegDirection)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetDoglegDirection )( 
            IGcadMLeader * This,
            /* [in] */ int leaderIndex,
            /* [in] */ VARIANT dirVec);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, GetBlockAttributeValue)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBlockAttributeValue )( 
            IGcadMLeader * This,
            /* [in] */ LONG_PTR attdefId,
            /* [retval][out] */ BSTR *Value);
        
        DECLSPEC_XFGVIRT(IGcadMLeader, SetBlockAttributeValue)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBlockAttributeValue )( 
            IGcadMLeader * This,
            /* [in] */ LONG_PTR attdefId,
            /* [in] */ BSTR Value);
        
        END_INTERFACE
    } IGcadMLeaderVtbl;

    interface IGcadMLeader
    {
        CONST_VTBL struct IGcadMLeaderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadMLeader_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadMLeader_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadMLeader_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadMLeader_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadMLeader_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadMLeader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadMLeader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadMLeader_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadMLeader_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadMLeader_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadMLeader_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadMLeader_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadMLeader_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadMLeader_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadMLeader_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadMLeader_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadMLeader_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadMLeader_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadMLeader_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadMLeader_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadMLeader_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadMLeader_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadMLeader_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadMLeader_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadMLeader_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadMLeader_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadMLeader_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadMLeader_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadMLeader_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadMLeader_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadMLeader_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadMLeader_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadMLeader_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadMLeader_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadMLeader_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadMLeader_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadMLeader_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadMLeader_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadMLeader_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadMLeader_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadMLeader_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadMLeader_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadMLeader_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadMLeader_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadMLeader_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadMLeader_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadMLeader_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadMLeader_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadMLeader_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadMLeader_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadMLeader_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadMLeader_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadMLeader_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadMLeader_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadMLeader_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadMLeader_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadMLeader_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadMLeader_get_ScaleFactor(This,scale)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,scale) ) 

#define IGcadMLeader_put_ScaleFactor(This,scale)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,scale) ) 

#define IGcadMLeader_get_LeaderType(This,Type)	\
    ( (This)->lpVtbl -> get_LeaderType(This,Type) ) 

#define IGcadMLeader_put_LeaderType(This,Type)	\
    ( (This)->lpVtbl -> put_LeaderType(This,Type) ) 

#define IGcadMLeader_get_LeaderLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_LeaderLineColor(This,Type) ) 

#define IGcadMLeader_put_LeaderLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_LeaderLineColor(This,Type) ) 

#define IGcadMLeader_get_LeaderLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_LeaderLinetype(This,Linetype) ) 

#define IGcadMLeader_put_LeaderLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_LeaderLinetype(This,Linetype) ) 

#define IGcadMLeader_get_LeaderLineWeight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_LeaderLineWeight(This,Lineweight) ) 

#define IGcadMLeader_put_LeaderLineWeight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_LeaderLineWeight(This,Lineweight) ) 

#define IGcadMLeader_get_ArrowheadType(This,BlockName)	\
    ( (This)->lpVtbl -> get_ArrowheadType(This,BlockName) ) 

#define IGcadMLeader_put_ArrowheadType(This,BlockName)	\
    ( (This)->lpVtbl -> put_ArrowheadType(This,BlockName) ) 

#define IGcadMLeader_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadMLeader_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadMLeader_get_DogLegged(This,val)	\
    ( (This)->lpVtbl -> get_DogLegged(This,val) ) 

#define IGcadMLeader_put_DogLegged(This,val)	\
    ( (This)->lpVtbl -> put_DogLegged(This,val) ) 

#define IGcadMLeader_get_DoglegLength(This,DoglegLength)	\
    ( (This)->lpVtbl -> get_DoglegLength(This,DoglegLength) ) 

#define IGcadMLeader_put_DoglegLength(This,DoglegLength)	\
    ( (This)->lpVtbl -> put_DoglegLength(This,DoglegLength) ) 

#define IGcadMLeader_get_ContentBlockName(This,BlockName)	\
    ( (This)->lpVtbl -> get_ContentBlockName(This,BlockName) ) 

#define IGcadMLeader_put_ContentBlockName(This,BlockName)	\
    ( (This)->lpVtbl -> put_ContentBlockName(This,BlockName) ) 

#define IGcadMLeader_get_BlockConnectionType(This,Type)	\
    ( (This)->lpVtbl -> get_BlockConnectionType(This,Type) ) 

#define IGcadMLeader_put_BlockConnectionType(This,Type)	\
    ( (This)->lpVtbl -> put_BlockConnectionType(This,Type) ) 

#define IGcadMLeader_get_BlockScale(This,factor)	\
    ( (This)->lpVtbl -> get_BlockScale(This,factor) ) 

#define IGcadMLeader_put_BlockScale(This,factor)	\
    ( (This)->lpVtbl -> put_BlockScale(This,factor) ) 

#define IGcadMLeader_get_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextString(This,bstrText) ) 

#define IGcadMLeader_put_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextString(This,bstrText) ) 

#define IGcadMLeader_get_TextStyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_TextStyleName(This,bstrName) ) 

#define IGcadMLeader_put_TextStyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_TextStyleName(This,bstrName) ) 

#define IGcadMLeader_get_TextJustify(This,attPoint)	\
    ( (This)->lpVtbl -> get_TextJustify(This,attPoint) ) 

#define IGcadMLeader_put_TextJustify(This,attPoint)	\
    ( (This)->lpVtbl -> put_TextJustify(This,attPoint) ) 

#define IGcadMLeader_get_TextDirection(This,drawDir)	\
    ( (This)->lpVtbl -> get_TextDirection(This,drawDir) ) 

#define IGcadMLeader_put_TextDirection(This,drawDir)	\
    ( (This)->lpVtbl -> put_TextDirection(This,drawDir) ) 

#define IGcadMLeader_get_TextWidth(This,Width)	\
    ( (This)->lpVtbl -> get_TextWidth(This,Width) ) 

#define IGcadMLeader_put_TextWidth(This,Width)	\
    ( (This)->lpVtbl -> put_TextWidth(This,Width) ) 

#define IGcadMLeader_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadMLeader_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadMLeader_get_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_TextRotation(This,rotAngle) ) 

#define IGcadMLeader_put_TextRotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_TextRotation(This,rotAngle) ) 

#define IGcadMLeader_get_TextLineSpacingFactor(This,factor)	\
    ( (This)->lpVtbl -> get_TextLineSpacingFactor(This,factor) ) 

#define IGcadMLeader_put_TextLineSpacingFactor(This,factor)	\
    ( (This)->lpVtbl -> put_TextLineSpacingFactor(This,factor) ) 

#define IGcadMLeader_get_TextLineSpacingDistance(This,Value)	\
    ( (This)->lpVtbl -> get_TextLineSpacingDistance(This,Value) ) 

#define IGcadMLeader_put_TextLineSpacingDistance(This,Value)	\
    ( (This)->lpVtbl -> put_TextLineSpacingDistance(This,Value) ) 

#define IGcadMLeader_get_TextLineSpacingStyle(This,style)	\
    ( (This)->lpVtbl -> get_TextLineSpacingStyle(This,style) ) 

#define IGcadMLeader_put_TextLineSpacingStyle(This,style)	\
    ( (This)->lpVtbl -> put_TextLineSpacingStyle(This,style) ) 

#define IGcadMLeader_get_TextBackgroundFill(This,bUseBackgroundFill)	\
    ( (This)->lpVtbl -> get_TextBackgroundFill(This,bUseBackgroundFill) ) 

#define IGcadMLeader_put_TextBackgroundFill(This,bUseBackgroundFill)	\
    ( (This)->lpVtbl -> put_TextBackgroundFill(This,bUseBackgroundFill) ) 

#define IGcadMLeader_get_TextAttachmentDirection(This,dir)	\
    ( (This)->lpVtbl -> get_TextAttachmentDirection(This,dir) ) 

#define IGcadMLeader_put_TextAttachmentDirection(This,dir)	\
    ( (This)->lpVtbl -> put_TextAttachmentDirection(This,dir) ) 

#define IGcadMLeader_get_TextLeftAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> get_TextLeftAttachmentType(This,Type) ) 

#define IGcadMLeader_put_TextLeftAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> put_TextLeftAttachmentType(This,Type) ) 

#define IGcadMLeader_get_TextRightAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> get_TextRightAttachmentType(This,Type) ) 

#define IGcadMLeader_put_TextRightAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> put_TextRightAttachmentType(This,Type) ) 

#define IGcadMLeader_get_TextTopAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> get_TextTopAttachmentType(This,Type) ) 

#define IGcadMLeader_put_TextTopAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> put_TextTopAttachmentType(This,Type) ) 

#define IGcadMLeader_get_TextBottomAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> get_TextBottomAttachmentType(This,Type) ) 

#define IGcadMLeader_put_TextBottomAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> put_TextBottomAttachmentType(This,Type) ) 

#define IGcadMLeader_get_LandingGap(This,gap)	\
    ( (This)->lpVtbl -> get_LandingGap(This,gap) ) 

#define IGcadMLeader_put_LandingGap(This,gap)	\
    ( (This)->lpVtbl -> put_LandingGap(This,gap) ) 

#define IGcadMLeader_get_ArrowheadBlock(This,BlockName)	\
    ( (This)->lpVtbl -> get_ArrowheadBlock(This,BlockName) ) 

#define IGcadMLeader_put_ArrowheadBlock(This,BlockName)	\
    ( (This)->lpVtbl -> put_ArrowheadBlock(This,BlockName) ) 

#define IGcadMLeader_get_ContentBlockType(This,Type)	\
    ( (This)->lpVtbl -> get_ContentBlockType(This,Type) ) 

#define IGcadMLeader_put_ContentBlockType(This,Type)	\
    ( (This)->lpVtbl -> put_ContentBlockType(This,Type) ) 

#define IGcadMLeader_get_LeaderCount(This,number)	\
    ( (This)->lpVtbl -> get_LeaderCount(This,number) ) 

#define IGcadMLeader_AddLeader(This,leaderIndex)	\
    ( (This)->lpVtbl -> AddLeader(This,leaderIndex) ) 

#define IGcadMLeader_RemoveLeader(This,leaderIndex)	\
    ( (This)->lpVtbl -> RemoveLeader(This,leaderIndex) ) 

#define IGcadMLeader_AddLeaderLine(This,leaderIndex,pointArray,leaderLineIndex)	\
    ( (This)->lpVtbl -> AddLeaderLine(This,leaderIndex,pointArray,leaderLineIndex) ) 

#define IGcadMLeader_AddLeaderLineEx(This,pointArray,leaderLineIndex)	\
    ( (This)->lpVtbl -> AddLeaderLineEx(This,pointArray,leaderLineIndex) ) 

#define IGcadMLeader_RemoveLeaderLine(This,leaderLineIndex)	\
    ( (This)->lpVtbl -> RemoveLeaderLine(This,leaderLineIndex) ) 

#define IGcadMLeader_SetLeaderLineVertices(This,leaderLineIndex,pointArray)	\
    ( (This)->lpVtbl -> SetLeaderLineVertices(This,leaderLineIndex,pointArray) ) 

#define IGcadMLeader_GetLeaderLineVertices(This,leaderLineIndex,pointArray)	\
    ( (This)->lpVtbl -> GetLeaderLineVertices(This,leaderLineIndex,pointArray) ) 

#define IGcadMLeader_put_ContentType(This,Type)	\
    ( (This)->lpVtbl -> put_ContentType(This,Type) ) 

#define IGcadMLeader_get_ContentType(This,Type)	\
    ( (This)->lpVtbl -> get_ContentType(This,Type) ) 

#define IGcadMLeader_GetLeaderIndex(This,leaderLineIndex,leaderIndex)	\
    ( (This)->lpVtbl -> GetLeaderIndex(This,leaderLineIndex,leaderIndex) ) 

#define IGcadMLeader_GetLeaderLineIndexes(This,leaderIndex,leaderLineIndexes)	\
    ( (This)->lpVtbl -> GetLeaderLineIndexes(This,leaderIndex,leaderLineIndexes) ) 

#define IGcadMLeader_GetVertexCount(This,leaderLineIndex,number)	\
    ( (This)->lpVtbl -> GetVertexCount(This,leaderLineIndex,number) ) 

#define IGcadMLeader_get_TextFrameDisplay(This,pVal)	\
    ( (This)->lpVtbl -> get_TextFrameDisplay(This,pVal) ) 

#define IGcadMLeader_put_TextFrameDisplay(This,pVal)	\
    ( (This)->lpVtbl -> put_TextFrameDisplay(This,pVal) ) 

#define IGcadMLeader_get_StyleName(This,Name)	\
    ( (This)->lpVtbl -> get_StyleName(This,Name) ) 

#define IGcadMLeader_put_StyleName(This,Name)	\
    ( (This)->lpVtbl -> put_StyleName(This,Name) ) 

#define IGcadMLeader_GetDoglegDirection(This,leaderIndex,dirVec)	\
    ( (This)->lpVtbl -> GetDoglegDirection(This,leaderIndex,dirVec) ) 

#define IGcadMLeader_SetDoglegDirection(This,leaderIndex,dirVec)	\
    ( (This)->lpVtbl -> SetDoglegDirection(This,leaderIndex,dirVec) ) 

#define IGcadMLeader_GetBlockAttributeValue(This,attdefId,Value)	\
    ( (This)->lpVtbl -> GetBlockAttributeValue(This,attdefId,Value) ) 

#define IGcadMLeader_SetBlockAttributeValue(This,attdefId,Value)	\
    ( (This)->lpVtbl -> SetBlockAttributeValue(This,attdefId,Value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_get_ContentType_Proxy( 
    IGcadMLeader * This,
    /* [retval][out] */ GcMLeaderContentType *Type);


void __RPC_STUB IGcadMLeader_get_ContentType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_GetLeaderIndex_Proxy( 
    IGcadMLeader * This,
    /* [in] */ int leaderLineIndex,
    /* [retval][out] */ int *leaderIndex);


void __RPC_STUB IGcadMLeader_GetLeaderIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_GetLeaderLineIndexes_Proxy( 
    IGcadMLeader * This,
    /* [in] */ int leaderIndex,
    /* [retval][out] */ VARIANT *leaderLineIndexes);


void __RPC_STUB IGcadMLeader_GetLeaderLineIndexes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_GetVertexCount_Proxy( 
    IGcadMLeader * This,
    /* [in] */ int leaderLineIndex,
    /* [retval][out] */ int *number);


void __RPC_STUB IGcadMLeader_GetVertexCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_get_TextFrameDisplay_Proxy( 
    IGcadMLeader * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB IGcadMLeader_get_TextFrameDisplay_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_put_TextFrameDisplay_Proxy( 
    IGcadMLeader * This,
    /* [in] */ VARIANT_BOOL pVal);


void __RPC_STUB IGcadMLeader_put_TextFrameDisplay_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_get_StyleName_Proxy( 
    IGcadMLeader * This,
    /* [retval][out] */ BSTR *Name);


void __RPC_STUB IGcadMLeader_get_StyleName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_put_StyleName_Proxy( 
    IGcadMLeader * This,
    /* [in] */ BSTR Name);


void __RPC_STUB IGcadMLeader_put_StyleName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_GetDoglegDirection_Proxy( 
    IGcadMLeader * This,
    /* [in] */ int leaderIndex,
    /* [retval][out] */ VARIANT *dirVec);


void __RPC_STUB IGcadMLeader_GetDoglegDirection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_SetDoglegDirection_Proxy( 
    IGcadMLeader * This,
    /* [in] */ int leaderIndex,
    /* [in] */ VARIANT dirVec);


void __RPC_STUB IGcadMLeader_SetDoglegDirection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_GetBlockAttributeValue_Proxy( 
    IGcadMLeader * This,
    /* [in] */ LONG_PTR attdefId,
    /* [retval][out] */ BSTR *Value);


void __RPC_STUB IGcadMLeader_GetBlockAttributeValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IGcadMLeader_SetBlockAttributeValue_Proxy( 
    IGcadMLeader * This,
    /* [in] */ LONG_PTR attdefId,
    /* [in] */ BSTR Value);


void __RPC_STUB IGcadMLeader_SetBlockAttributeValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGcadMLeader_INTERFACE_DEFINED__ */


#ifndef __IGcadPaperSpace_INTERFACE_DEFINED__
#define __IGcadPaperSpace_INTERFACE_DEFINED__

/* interface IGcadPaperSpace */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadPaperSpace;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("66FA50E9-6EB2-47CA-8EBA-7085C5E6C3A5")
    IGcadPaperSpace : public IGcadBlock
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddPViewport( 
            /* [in] */ VARIANT Center,
            /* [in] */ double Width,
            /* [in] */ double Height,
            /* [retval][out] */ IGcadPViewport **pPViewport) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPaperSpaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPaperSpace * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPaperSpace * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPaperSpace * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPaperSpace * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPaperSpace * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPaperSpace * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPaperSpace * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPaperSpace * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPaperSpace * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPaperSpace * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadEntity **pItem);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadPaperSpace * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Origin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Origin )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ VARIANT *Origin);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Origin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Origin )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Origin);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCustomObject)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCustomObject )( 
            IGcadPaperSpace * This,
            /* [in] */ BSTR ClassName,
            /* [retval][out] */ IDispatch **pObject);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Add3DFace)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add3DFace )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [in] */ VARIANT Point4,
            /* [retval][out] */ IGcad3DFace **pFace3d);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Add3DMesh)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add3DMesh )( 
            IGcadPaperSpace * This,
            /* [in] */ int M,
            /* [in] */ int N,
            /* [in] */ VARIANT PointsMatrix,
            /* [retval][out] */ IGcadPolygonMesh **pMesh3d);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Add3DPoly)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add3DPoly )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT PointsArray,
            /* [retval][out] */ IGcad3DPolyline **pPoly3d);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddArc)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddArc )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [in] */ double StartAngle,
            /* [in] */ double EndAngle,
            /* [retval][out] */ IGcadArc **pArc);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddAttribute)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddAttribute )( 
            IGcadPaperSpace * This,
            /* [in] */ double Height,
            /* [in] */ GcAttributeMode Mode,
            /* [in] */ BSTR Prompt,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Tag,
            /* [in] */ BSTR Value,
            /* [retval][out] */ IGcadAttribute **pAttr);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddBox )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Origin,
            /* [in] */ double Length,
            /* [in] */ double Width,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pBox);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCircle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCircle )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [retval][out] */ IGcadCircle **pCircle);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCone )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double BaseRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pCone);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddCylinder)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCylinder )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pCyl);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimAligned)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimAligned )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT ExtLine1Point,
            /* [in] */ VARIANT ExtLine2Point,
            /* [in] */ VARIANT TextPosition,
            /* [retval][out] */ IGcadDimAligned **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimAngular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimAngular )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT AngleVertex,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT TextPoint,
            /* [retval][out] */ IGcadDimAngular **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimDiametric)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimDiametric )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ VARIANT FarChordPoint,
            /* [in] */ double LeaderLength,
            /* [retval][out] */ IGcadDimDiametric **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimRotated)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimRotated )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT ExtLine1Point,
            /* [in] */ VARIANT ExtLine2Point,
            /* [in] */ VARIANT DimLineLocation,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadDimRotated **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimOrdinate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimOrdinate )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT DefinitionPoint,
            /* [in] */ VARIANT LeaderEndPoint,
            /* [in] */ int UseXAxis,
            /* [retval][out] */ IGcadDimOrdinate **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimRadial)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimRadial )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ double LeaderLength,
            /* [retval][out] */ IGcadDimRadial **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddEllipse)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEllipse )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT MajorAxis,
            /* [in] */ double RadiusRatio,
            /* [retval][out] */ IGcadEllipse **pEllipse);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddEllipticalCone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEllipticalCone )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double MajorRadius,
            /* [in] */ double MinorRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pEllipCone);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddEllipticalCylinder)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEllipticalCylinder )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double MajorRadius,
            /* [in] */ double MinorRadius,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pEllipCyl);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddExtrudedSolid)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddExtrudedSolid )( 
            IGcadPaperSpace * This,
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ double Height,
            /* [in] */ double TaperAngle,
            /* [retval][out] */ IGcad3DSolid **pExtrSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddExtrudedSolidAlongPath)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddExtrudedSolidAlongPath )( 
            IGcadPaperSpace * This,
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ IDispatch *Path,
            /* [retval][out] */ IGcad3DSolid **pExtrSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddLeader)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLeader )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT PointsArray,
            /* [in] */ IGcadEntity *Annotation,
            /* [in] */ GcLeaderType Type,
            /* [retval][out] */ IGcadLeader **pLeader);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMText)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMText )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Width,
            /* [in] */ BSTR Text,
            /* [retval][out] */ IGcadMText **pMtext);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddPoint)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPoint )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Point,
            /* [retval][out] */ IGcadPoint **pPoint);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddLightWeightPolyline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLightWeightPolyline )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT VerticesList,
            /* [retval][out] */ IGcadLWPolyline **pLWPolyline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddPolyline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPolyline )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT VerticesList,
            /* [retval][out] */ IGcadPolyline **pPolyline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRay)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRay )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IGcadRay **pRay);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRegion)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRegion )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT ObjectList,
            /* [retval][out] */ VARIANT *pRegions);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRevolvedSolid)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRevolvedSolid )( 
            IGcadPaperSpace * This,
            /* [in] */ IGcadRegion *Profile,
            /* [in] */ VARIANT AxisPoint,
            /* [in] */ VARIANT AxisDir,
            /* [in] */ double Angle,
            /* [retval][out] */ IGcad3DSolid **pRevolSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddShape)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddShape )( 
            IGcadPaperSpace * This,
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double ScaleFactor,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadShape **pShape);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSolid)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSolid )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [in] */ VARIANT Point4,
            /* [retval][out] */ IGcadSolid **pSolid);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSphere)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSphere )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Radius,
            /* [retval][out] */ IGcad3DSolid **pSphere);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSpline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSpline )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT PointsArray,
            /* [in] */ VARIANT StartTangent,
            /* [in] */ VARIANT EndTangent,
            /* [retval][out] */ IGcadSpline **pSpline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddText)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddText )( 
            IGcadPaperSpace * This,
            /* [in] */ BSTR TextString,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Height,
            /* [retval][out] */ IGcadText **pText);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTolerance)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTolerance )( 
            IGcadPaperSpace * This,
            /* [in] */ BSTR Text,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ VARIANT Direction,
            /* [retval][out] */ IGcadTolerance **pTolerance);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTorus)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTorus )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double TorusRadius,
            /* [in] */ double TubeRadius,
            /* [retval][out] */ IGcad3DSolid **pTorus);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTrace)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTrace )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT PointsArray,
            /* [retval][out] */ IGcadTrace **pTrace);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddWedge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddWedge )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Length,
            /* [in] */ double Width,
            /* [in] */ double Height,
            /* [retval][out] */ IGcad3DSolid **pWedge);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddXline)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddXline )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IGcadXline **pXline);
        
        DECLSPEC_XFGVIRT(IGcadBlock, InsertBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertBlock )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Name,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadBlockReference **pBlkRef);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddHatch)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddHatch )( 
            IGcadPaperSpace * This,
            /* [in] */ int PatternType,
            /* [in] */ BSTR PatternName,
            /* [in] */ VARIANT_BOOL Associativity,
            /* [optional][in] */ VARIANT HatchObjectType,
            /* [retval][out] */ IGcadHatch **pHatch);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddRaster)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRaster )( 
            IGcadPaperSpace * This,
            /* [in] */ BSTR imageFileName,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double ScaleFactor,
            /* [in] */ double RotationAngle,
            /* [retval][out] */ IGcadRasterImage **pRaster);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddLine)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLine )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT StartPoint,
            /* [in] */ VARIANT EndPoint,
            /* [retval][out] */ IGcadLine **pLine);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_IsLayout)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsLayout )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ VARIANT_BOOL *bIsLayout);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Layout)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layout )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ IGcadLayout **pLayout);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_IsXRef)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsXRef )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ VARIANT_BOOL *pIsXRref);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMInsertBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMInsertBlock )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Name,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [in] */ long NumRows,
            /* [in] */ long NumColumns,
            /* [in] */ long RowSpacing,
            /* [in] */ long ColumnSpacing,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadMInsertBlock **pMInsertBlk);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddPolyfaceMesh)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPolyfaceMesh )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT VertexList,
            /* [in] */ VARIANT FaceList,
            /* [retval][out] */ IGcadPolyfaceMesh **pPFMesh);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMLine)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMLine )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT VertexList,
            /* [retval][out] */ IGcadMLine **pMLine);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDim3PointAngular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDim3PointAngular )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT AngleVertex,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT TextPoint,
            /* [retval][out] */ IGcadDim3PointAngular **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_XRefDatabase)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XRefDatabase )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AttachExternalReference)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttachExternalReference )( 
            IGcadPaperSpace * This,
            /* [in] */ BSTR PathName,
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ double Xscale,
            /* [in] */ double Yscale,
            /* [in] */ double Zscale,
            /* [in] */ double Rotation,
            /* [in] */ VARIANT_BOOL bOverlay,
            /* [optional][in] */ VARIANT Password,
            /* [retval][out] */ IGcadExternalReference **pXRef);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Unload)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Unload )( 
            IGcadPaperSpace * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Reload)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Reload )( 
            IGcadPaperSpace * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Bind)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Bind )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT_BOOL bPrefixName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, Detach)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Detach )( 
            IGcadPaperSpace * This);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddTable)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTable )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ int NumRows,
            /* [in] */ int NumColumns,
            /* [in] */ double RowHeight,
            /* [in] */ double ColWidth,
            /* [retval][out] */ IGcadTable **pTable);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Path)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Path)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Path )( 
            IGcadPaperSpace * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Comments)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Comments )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Comments)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Comments )( 
            IGcadPaperSpace * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Units)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Units )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ GcInsertUnits *pIU);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Units)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Units )( 
            IGcadPaperSpace * This,
            /* [in] */ GcInsertUnits pIU);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_Explodable)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Explodable )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ VARIANT_BOOL *bExplodable);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_Explodable)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Explodable )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT_BOOL bExplodable);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_BlockScaling)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BlockScaling )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ GcBlockScaling *pBS);
        
        DECLSPEC_XFGVIRT(IGcadBlock, put_BlockScaling)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BlockScaling )( 
            IGcadPaperSpace * This,
            /* [in] */ GcBlockScaling pBS);
        
        DECLSPEC_XFGVIRT(IGcadBlock, get_IsDynamicBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsDynamicBlock )( 
            IGcadPaperSpace * This,
            /* [retval][out] */ VARIANT_BOOL *pDynamicBlock);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimArc)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimArc )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT ArcCenter,
            /* [in] */ VARIANT FirstEndPoint,
            /* [in] */ VARIANT SecondEndPoint,
            /* [in] */ VARIANT ArcPoint,
            /* [retval][out] */ IGcadDimArcLength **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddDimRadialLarge)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDimRadialLarge )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ VARIANT ChordPoint,
            /* [in] */ VARIANT OverrideCenter,
            /* [in] */ VARIANT JogPoint,
            /* [in] */ double JogAngle,
            /* [retval][out] */ IGcadDimRadialLarge **pDim);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddSection)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSection )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint,
            /* [in] */ VARIANT planeVector,
            /* [retval][out] */ IGcadSection **ppSecPlane);
        
        DECLSPEC_XFGVIRT(IGcadBlock, AddMLeader)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMLeader )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT PointsArray,
            /* [out] */ int *leaderLineIndex,
            /* [retval][out] */ IGcadMLeader **pMLeader);
        
        DECLSPEC_XFGVIRT(IGcadPaperSpace, AddPViewport)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPViewport )( 
            IGcadPaperSpace * This,
            /* [in] */ VARIANT Center,
            /* [in] */ double Width,
            /* [in] */ double Height,
            /* [retval][out] */ IGcadPViewport **pPViewport);
        
        END_INTERFACE
    } IGcadPaperSpaceVtbl;

    interface IGcadPaperSpace
    {
        CONST_VTBL struct IGcadPaperSpaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPaperSpace_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPaperSpace_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPaperSpace_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPaperSpace_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPaperSpace_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPaperSpace_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPaperSpace_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPaperSpace_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPaperSpace_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPaperSpace_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPaperSpace_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPaperSpace_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPaperSpace_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPaperSpace_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPaperSpace_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPaperSpace_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPaperSpace_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPaperSpace_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPaperSpace_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPaperSpace_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPaperSpace_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadPaperSpace_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadPaperSpace_get_Count(This,pVal)	\
    ( (This)->lpVtbl -> get_Count(This,pVal) ) 

#define IGcadPaperSpace_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadPaperSpace_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadPaperSpace_get_Origin(This,Origin)	\
    ( (This)->lpVtbl -> get_Origin(This,Origin) ) 

#define IGcadPaperSpace_put_Origin(This,Origin)	\
    ( (This)->lpVtbl -> put_Origin(This,Origin) ) 

#define IGcadPaperSpace_AddCustomObject(This,ClassName,pObject)	\
    ( (This)->lpVtbl -> AddCustomObject(This,ClassName,pObject) ) 

#define IGcadPaperSpace_Add3DFace(This,Point1,Point2,point3,Point4,pFace3d)	\
    ( (This)->lpVtbl -> Add3DFace(This,Point1,Point2,point3,Point4,pFace3d) ) 

#define IGcadPaperSpace_Add3DMesh(This,M,N,PointsMatrix,pMesh3d)	\
    ( (This)->lpVtbl -> Add3DMesh(This,M,N,PointsMatrix,pMesh3d) ) 

#define IGcadPaperSpace_Add3DPoly(This,PointsArray,pPoly3d)	\
    ( (This)->lpVtbl -> Add3DPoly(This,PointsArray,pPoly3d) ) 

#define IGcadPaperSpace_AddArc(This,Center,Radius,StartAngle,EndAngle,pArc)	\
    ( (This)->lpVtbl -> AddArc(This,Center,Radius,StartAngle,EndAngle,pArc) ) 

#define IGcadPaperSpace_AddAttribute(This,Height,Mode,Prompt,InsertionPoint,Tag,Value,pAttr)	\
    ( (This)->lpVtbl -> AddAttribute(This,Height,Mode,Prompt,InsertionPoint,Tag,Value,pAttr) ) 

#define IGcadPaperSpace_AddBox(This,Origin,Length,Width,Height,pBox)	\
    ( (This)->lpVtbl -> AddBox(This,Origin,Length,Width,Height,pBox) ) 

#define IGcadPaperSpace_AddCircle(This,Center,Radius,pCircle)	\
    ( (This)->lpVtbl -> AddCircle(This,Center,Radius,pCircle) ) 

#define IGcadPaperSpace_AddCone(This,Center,BaseRadius,Height,pCone)	\
    ( (This)->lpVtbl -> AddCone(This,Center,BaseRadius,Height,pCone) ) 

#define IGcadPaperSpace_AddCylinder(This,Center,Radius,Height,pCyl)	\
    ( (This)->lpVtbl -> AddCylinder(This,Center,Radius,Height,pCyl) ) 

#define IGcadPaperSpace_AddDimAligned(This,ExtLine1Point,ExtLine2Point,TextPosition,pDim)	\
    ( (This)->lpVtbl -> AddDimAligned(This,ExtLine1Point,ExtLine2Point,TextPosition,pDim) ) 

#define IGcadPaperSpace_AddDimAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim)	\
    ( (This)->lpVtbl -> AddDimAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim) ) 

#define IGcadPaperSpace_AddDimDiametric(This,ChordPoint,FarChordPoint,LeaderLength,pDim)	\
    ( (This)->lpVtbl -> AddDimDiametric(This,ChordPoint,FarChordPoint,LeaderLength,pDim) ) 

#define IGcadPaperSpace_AddDimRotated(This,ExtLine1Point,ExtLine2Point,DimLineLocation,RotationAngle,pDim)	\
    ( (This)->lpVtbl -> AddDimRotated(This,ExtLine1Point,ExtLine2Point,DimLineLocation,RotationAngle,pDim) ) 

#define IGcadPaperSpace_AddDimOrdinate(This,DefinitionPoint,LeaderEndPoint,UseXAxis,pDim)	\
    ( (This)->lpVtbl -> AddDimOrdinate(This,DefinitionPoint,LeaderEndPoint,UseXAxis,pDim) ) 

#define IGcadPaperSpace_AddDimRadial(This,Center,ChordPoint,LeaderLength,pDim)	\
    ( (This)->lpVtbl -> AddDimRadial(This,Center,ChordPoint,LeaderLength,pDim) ) 

#define IGcadPaperSpace_AddEllipse(This,Center,MajorAxis,RadiusRatio,pEllipse)	\
    ( (This)->lpVtbl -> AddEllipse(This,Center,MajorAxis,RadiusRatio,pEllipse) ) 

#define IGcadPaperSpace_AddEllipticalCone(This,Center,MajorRadius,MinorRadius,Height,pEllipCone)	\
    ( (This)->lpVtbl -> AddEllipticalCone(This,Center,MajorRadius,MinorRadius,Height,pEllipCone) ) 

#define IGcadPaperSpace_AddEllipticalCylinder(This,Center,MajorRadius,MinorRadius,Height,pEllipCyl)	\
    ( (This)->lpVtbl -> AddEllipticalCylinder(This,Center,MajorRadius,MinorRadius,Height,pEllipCyl) ) 

#define IGcadPaperSpace_AddExtrudedSolid(This,Profile,Height,TaperAngle,pExtrSolid)	\
    ( (This)->lpVtbl -> AddExtrudedSolid(This,Profile,Height,TaperAngle,pExtrSolid) ) 

#define IGcadPaperSpace_AddExtrudedSolidAlongPath(This,Profile,Path,pExtrSolid)	\
    ( (This)->lpVtbl -> AddExtrudedSolidAlongPath(This,Profile,Path,pExtrSolid) ) 

#define IGcadPaperSpace_AddLeader(This,PointsArray,Annotation,Type,pLeader)	\
    ( (This)->lpVtbl -> AddLeader(This,PointsArray,Annotation,Type,pLeader) ) 

#define IGcadPaperSpace_AddMText(This,InsertionPoint,Width,Text,pMtext)	\
    ( (This)->lpVtbl -> AddMText(This,InsertionPoint,Width,Text,pMtext) ) 

#define IGcadPaperSpace_AddPoint(This,Point,pPoint)	\
    ( (This)->lpVtbl -> AddPoint(This,Point,pPoint) ) 

#define IGcadPaperSpace_AddLightWeightPolyline(This,VerticesList,pLWPolyline)	\
    ( (This)->lpVtbl -> AddLightWeightPolyline(This,VerticesList,pLWPolyline) ) 

#define IGcadPaperSpace_AddPolyline(This,VerticesList,pPolyline)	\
    ( (This)->lpVtbl -> AddPolyline(This,VerticesList,pPolyline) ) 

#define IGcadPaperSpace_AddRay(This,Point1,Point2,pRay)	\
    ( (This)->lpVtbl -> AddRay(This,Point1,Point2,pRay) ) 

#define IGcadPaperSpace_AddRegion(This,ObjectList,pRegions)	\
    ( (This)->lpVtbl -> AddRegion(This,ObjectList,pRegions) ) 

#define IGcadPaperSpace_AddRevolvedSolid(This,Profile,AxisPoint,AxisDir,Angle,pRevolSolid)	\
    ( (This)->lpVtbl -> AddRevolvedSolid(This,Profile,AxisPoint,AxisDir,Angle,pRevolSolid) ) 

#define IGcadPaperSpace_AddShape(This,Name,InsertionPoint,ScaleFactor,RotationAngle,pShape)	\
    ( (This)->lpVtbl -> AddShape(This,Name,InsertionPoint,ScaleFactor,RotationAngle,pShape) ) 

#define IGcadPaperSpace_AddSolid(This,Point1,Point2,point3,Point4,pSolid)	\
    ( (This)->lpVtbl -> AddSolid(This,Point1,Point2,point3,Point4,pSolid) ) 

#define IGcadPaperSpace_AddSphere(This,Center,Radius,pSphere)	\
    ( (This)->lpVtbl -> AddSphere(This,Center,Radius,pSphere) ) 

#define IGcadPaperSpace_AddSpline(This,PointsArray,StartTangent,EndTangent,pSpline)	\
    ( (This)->lpVtbl -> AddSpline(This,PointsArray,StartTangent,EndTangent,pSpline) ) 

#define IGcadPaperSpace_AddText(This,TextString,InsertionPoint,Height,pText)	\
    ( (This)->lpVtbl -> AddText(This,TextString,InsertionPoint,Height,pText) ) 

#define IGcadPaperSpace_AddTolerance(This,Text,InsertionPoint,Direction,pTolerance)	\
    ( (This)->lpVtbl -> AddTolerance(This,Text,InsertionPoint,Direction,pTolerance) ) 

#define IGcadPaperSpace_AddTorus(This,Center,TorusRadius,TubeRadius,pTorus)	\
    ( (This)->lpVtbl -> AddTorus(This,Center,TorusRadius,TubeRadius,pTorus) ) 

#define IGcadPaperSpace_AddTrace(This,PointsArray,pTrace)	\
    ( (This)->lpVtbl -> AddTrace(This,PointsArray,pTrace) ) 

#define IGcadPaperSpace_AddWedge(This,Center,Length,Width,Height,pWedge)	\
    ( (This)->lpVtbl -> AddWedge(This,Center,Length,Width,Height,pWedge) ) 

#define IGcadPaperSpace_AddXline(This,Point1,Point2,pXline)	\
    ( (This)->lpVtbl -> AddXline(This,Point1,Point2,pXline) ) 

#define IGcadPaperSpace_InsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,Password,pBlkRef)	\
    ( (This)->lpVtbl -> InsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,Password,pBlkRef) ) 

#define IGcadPaperSpace_AddHatch(This,PatternType,PatternName,Associativity,HatchObjectType,pHatch)	\
    ( (This)->lpVtbl -> AddHatch(This,PatternType,PatternName,Associativity,HatchObjectType,pHatch) ) 

#define IGcadPaperSpace_AddRaster(This,imageFileName,InsertionPoint,ScaleFactor,RotationAngle,pRaster)	\
    ( (This)->lpVtbl -> AddRaster(This,imageFileName,InsertionPoint,ScaleFactor,RotationAngle,pRaster) ) 

#define IGcadPaperSpace_AddLine(This,StartPoint,EndPoint,pLine)	\
    ( (This)->lpVtbl -> AddLine(This,StartPoint,EndPoint,pLine) ) 

#define IGcadPaperSpace_get_IsLayout(This,bIsLayout)	\
    ( (This)->lpVtbl -> get_IsLayout(This,bIsLayout) ) 

#define IGcadPaperSpace_get_Layout(This,pLayout)	\
    ( (This)->lpVtbl -> get_Layout(This,pLayout) ) 

#define IGcadPaperSpace_get_IsXRef(This,pIsXRref)	\
    ( (This)->lpVtbl -> get_IsXRef(This,pIsXRref) ) 

#define IGcadPaperSpace_AddMInsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,NumRows,NumColumns,RowSpacing,ColumnSpacing,Password,pMInsertBlk)	\
    ( (This)->lpVtbl -> AddMInsertBlock(This,InsertionPoint,Name,Xscale,Yscale,Zscale,Rotation,NumRows,NumColumns,RowSpacing,ColumnSpacing,Password,pMInsertBlk) ) 

#define IGcadPaperSpace_AddPolyfaceMesh(This,VertexList,FaceList,pPFMesh)	\
    ( (This)->lpVtbl -> AddPolyfaceMesh(This,VertexList,FaceList,pPFMesh) ) 

#define IGcadPaperSpace_AddMLine(This,VertexList,pMLine)	\
    ( (This)->lpVtbl -> AddMLine(This,VertexList,pMLine) ) 

#define IGcadPaperSpace_AddDim3PointAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim)	\
    ( (This)->lpVtbl -> AddDim3PointAngular(This,AngleVertex,FirstEndPoint,SecondEndPoint,TextPoint,pDim) ) 

#define IGcadPaperSpace_get_XRefDatabase(This,pDatabase)	\
    ( (This)->lpVtbl -> get_XRefDatabase(This,pDatabase) ) 

#define IGcadPaperSpace_AttachExternalReference(This,PathName,Name,InsertionPoint,Xscale,Yscale,Zscale,Rotation,bOverlay,Password,pXRef)	\
    ( (This)->lpVtbl -> AttachExternalReference(This,PathName,Name,InsertionPoint,Xscale,Yscale,Zscale,Rotation,bOverlay,Password,pXRef) ) 

#define IGcadPaperSpace_Unload(This)	\
    ( (This)->lpVtbl -> Unload(This) ) 

#define IGcadPaperSpace_Reload(This)	\
    ( (This)->lpVtbl -> Reload(This) ) 

#define IGcadPaperSpace_Bind(This,bPrefixName)	\
    ( (This)->lpVtbl -> Bind(This,bPrefixName) ) 

#define IGcadPaperSpace_Detach(This)	\
    ( (This)->lpVtbl -> Detach(This) ) 

#define IGcadPaperSpace_AddTable(This,InsertionPoint,NumRows,NumColumns,RowHeight,ColWidth,pTable)	\
    ( (This)->lpVtbl -> AddTable(This,InsertionPoint,NumRows,NumColumns,RowHeight,ColWidth,pTable) ) 

#define IGcadPaperSpace_get_Path(This,bstrName)	\
    ( (This)->lpVtbl -> get_Path(This,bstrName) ) 

#define IGcadPaperSpace_put_Path(This,bstrName)	\
    ( (This)->lpVtbl -> put_Path(This,bstrName) ) 

#define IGcadPaperSpace_get_Comments(This,bstrName)	\
    ( (This)->lpVtbl -> get_Comments(This,bstrName) ) 

#define IGcadPaperSpace_put_Comments(This,bstrName)	\
    ( (This)->lpVtbl -> put_Comments(This,bstrName) ) 

#define IGcadPaperSpace_get_Units(This,pIU)	\
    ( (This)->lpVtbl -> get_Units(This,pIU) ) 

#define IGcadPaperSpace_put_Units(This,pIU)	\
    ( (This)->lpVtbl -> put_Units(This,pIU) ) 

#define IGcadPaperSpace_get_Explodable(This,bExplodable)	\
    ( (This)->lpVtbl -> get_Explodable(This,bExplodable) ) 

#define IGcadPaperSpace_put_Explodable(This,bExplodable)	\
    ( (This)->lpVtbl -> put_Explodable(This,bExplodable) ) 

#define IGcadPaperSpace_get_BlockScaling(This,pBS)	\
    ( (This)->lpVtbl -> get_BlockScaling(This,pBS) ) 

#define IGcadPaperSpace_put_BlockScaling(This,pBS)	\
    ( (This)->lpVtbl -> put_BlockScaling(This,pBS) ) 

#define IGcadPaperSpace_get_IsDynamicBlock(This,pDynamicBlock)	\
    ( (This)->lpVtbl -> get_IsDynamicBlock(This,pDynamicBlock) ) 

#define IGcadPaperSpace_AddDimArc(This,ArcCenter,FirstEndPoint,SecondEndPoint,ArcPoint,pDim)	\
    ( (This)->lpVtbl -> AddDimArc(This,ArcCenter,FirstEndPoint,SecondEndPoint,ArcPoint,pDim) ) 

#define IGcadPaperSpace_AddDimRadialLarge(This,Center,ChordPoint,OverrideCenter,JogPoint,JogAngle,pDim)	\
    ( (This)->lpVtbl -> AddDimRadialLarge(This,Center,ChordPoint,OverrideCenter,JogPoint,JogAngle,pDim) ) 

#define IGcadPaperSpace_AddSection(This,FromPoint,ToPoint,planeVector,ppSecPlane)	\
    ( (This)->lpVtbl -> AddSection(This,FromPoint,ToPoint,planeVector,ppSecPlane) ) 

#define IGcadPaperSpace_AddMLeader(This,PointsArray,leaderLineIndex,pMLeader)	\
    ( (This)->lpVtbl -> AddMLeader(This,PointsArray,leaderLineIndex,pMLeader) ) 


#define IGcadPaperSpace_AddPViewport(This,Center,Width,Height,pPViewport)	\
    ( (This)->lpVtbl -> AddPViewport(This,Center,Width,Height,pPViewport) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPaperSpace_INTERFACE_DEFINED__ */


#ifndef __IGcadPViewport_INTERFACE_DEFINED__
#define __IGcadPViewport_INTERFACE_DEFINED__

/* interface IGcadPViewport */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadPViewport;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E1366A0E-60BF-4E69-9728-D524EDF12C69")
    IGcadPViewport : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Center( 
            /* [retval][out] */ VARIANT *CenterPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Center( 
            /* [in] */ VARIANT CenterPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Direction( 
            /* [retval][out] */ VARIANT *dirVector) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Direction( 
            /* [in] */ VARIANT dirVector) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GridOn( 
            /* [retval][out] */ VARIANT_BOOL *bGridOn) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_GridOn( 
            /* [in] */ VARIANT_BOOL bGridOn) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Width( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ViewportOn( 
            /* [retval][out] */ VARIANT_BOOL *bOn) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ViewportOn( 
            /* [in] */ VARIANT_BOOL bOn) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Clipped( 
            /* [retval][out] */ VARIANT_BOOL *bClipped) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DisplayLocked( 
            /* [retval][out] */ VARIANT_BOOL *bLocked) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DisplayLocked( 
            /* [in] */ VARIANT_BOOL bLocked) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StandardScale( 
            /* [retval][out] */ GcViewportScale *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StandardScale( 
            /* [in] */ GcViewportScale scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CustomScale( 
            /* [retval][out] */ double *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CustomScale( 
            /* [in] */ double scale) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleSheet( 
            /* [retval][out] */ BSTR *pName) = 0;
        
        virtual /* [helpstring][hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_StyleSheet( 
            /* [in] */ BSTR pName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UCSPerViewport( 
            /* [retval][out] */ VARIANT_BOOL *UCSSaved) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UCSPerViewport( 
            /* [in] */ VARIANT_BOOL UCSSaved) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SnapBasePoint( 
            /* [retval][out] */ VARIANT *lowLeft) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SnapBasePoint( 
            /* [in] */ VARIANT lowLeft) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SnapOn( 
            /* [retval][out] */ VARIANT_BOOL *bSnapOn) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SnapOn( 
            /* [in] */ VARIANT_BOOL bSnapOn) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SnapRotationAngle( 
            /* [retval][out] */ double *Angle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SnapRotationAngle( 
            /* [in] */ double Angle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UCSIconOn( 
            /* [retval][out] */ VARIANT_BOOL *bIconOn) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UCSIconOn( 
            /* [in] */ VARIANT_BOOL bIconOn) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UCSIconAtOrigin( 
            /* [retval][out] */ VARIANT_BOOL *bIconAtOrigin) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UCSIconAtOrigin( 
            /* [in] */ VARIANT_BOOL bIconAtOrigin) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridSpacing( 
            /* [out] */ double *XSpacing,
            /* [out] */ double *YSpacing) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridSpacing( 
            /* [in] */ double XSpacing,
            /* [in] */ double YSpacing) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSnapSpacing( 
            /* [out] */ double *XSpacing,
            /* [out] */ double *YSpacing) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSnapSpacing( 
            /* [in] */ double XSpacing,
            /* [in] */ double YSpacing) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Display( 
            /* [in] */ VARIANT_BOOL bStatus) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TwistAngle( 
            /* [retval][out] */ GCAD_ANGLE *Angle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TwistAngle( 
            /* [in] */ GCAD_ANGLE Angle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LensLength( 
            /* [retval][out] */ double *Length) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LensLength( 
            /* [in] */ double Length) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_RemoveHiddenLines( 
            /* [retval][out] */ VARIANT_BOOL *bRemoval) = 0;
        
        virtual /* [helpstring][hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_RemoveHiddenLines( 
            /* [in] */ VARIANT_BOOL bRemoval) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Target( 
            /* [retval][out] */ VARIANT *targetPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Target( 
            /* [in] */ VARIANT targetPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArcSmoothness( 
            /* [retval][out] */ long *arcSmooth) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArcSmoothness( 
            /* [in] */ long arcSmooth) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VisualStyle( 
            /* [retval][out] */ int *pVisualStyleIndex) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_VisualStyle( 
            /* [in] */ int pVisualStyleIndex) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ShadePlot( 
            /* [retval][out] */ int *pShadePlotIndex) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ShadePlot( 
            /* [in] */ int pShadePlotIndex) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ModelView( 
            /* [retval][out] */ IGcadView **View) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ModelView( 
            /* [in] */ IGcadView *View) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SheetView( 
            /* [retval][out] */ IGcadView **View) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SheetView( 
            /* [in] */ IGcadView *View) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LabelBlockId( 
            /* [retval][out] */ LONG_PTR *ObjectID) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LabelBlockId( 
            /* [in] */ LONG_PTR *ObjectID) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HasSheetView( 
            /* [retval][out] */ VARIANT_BOOL *bSheetView) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SyncModelView( void) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LayerPropertyOverrides( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL__IGcadPViewport0000) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StandardScale2( 
            /* [retval][out] */ int *__MIDL__IGcadPViewport0001) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StandardScale2( 
            /* [in] */ int rhs) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPViewportVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPViewport * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPViewport * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPViewport * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPViewport * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPViewport * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPViewport * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPViewport * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPViewport * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPViewport * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPViewport * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPViewport * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPViewport * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPViewport * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPViewport * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPViewport * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPViewport * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPViewport * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPViewport * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadPViewport * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadPViewport * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadPViewport * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadPViewport * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadPViewport * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadPViewport * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadPViewport * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadPViewport * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadPViewport * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadPViewport * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadPViewport * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadPViewport * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadPViewport * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadPViewport * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadPViewport * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadPViewport * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadPViewport * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadPViewport * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadPViewport * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadPViewport * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadPViewport * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadPViewport * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadPViewport * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadPViewport * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadPViewport * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadPViewport * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadPViewport * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_Center)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Center )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT *CenterPoint);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_Center)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Center )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT CenterPoint);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_Direction)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Direction )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT *dirVector);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_Direction)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Direction )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT dirVector);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_GridOn)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GridOn )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bGridOn);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_GridOn)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GridOn )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT_BOOL bGridOn);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadPViewport * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadPViewport * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadPViewport * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_Width)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( 
            IGcadPViewport * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_ViewportOn)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ViewportOn )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bOn);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_ViewportOn)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ViewportOn )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT_BOOL bOn);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_Clipped)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Clipped )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bClipped);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_DisplayLocked)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayLocked )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bLocked);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_DisplayLocked)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayLocked )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT_BOOL bLocked);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_StandardScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StandardScale )( 
            IGcadPViewport * This,
            /* [retval][out] */ GcViewportScale *scale);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_StandardScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StandardScale )( 
            IGcadPViewport * This,
            /* [in] */ GcViewportScale scale);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_CustomScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CustomScale )( 
            IGcadPViewport * This,
            /* [retval][out] */ double *scale);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_CustomScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CustomScale )( 
            IGcadPViewport * This,
            /* [in] */ double scale);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_StyleSheet)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleSheet )( 
            IGcadPViewport * This,
            /* [retval][out] */ BSTR *pName);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_StyleSheet)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleSheet )( 
            IGcadPViewport * This,
            /* [in] */ BSTR pName);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_UCSPerViewport)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UCSPerViewport )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *UCSSaved);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_UCSPerViewport)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UCSPerViewport )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT_BOOL UCSSaved);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_SnapBasePoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SnapBasePoint )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT *lowLeft);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_SnapBasePoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SnapBasePoint )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT lowLeft);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_SnapOn)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SnapOn )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bSnapOn);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_SnapOn)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SnapOn )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT_BOOL bSnapOn);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_SnapRotationAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SnapRotationAngle )( 
            IGcadPViewport * This,
            /* [retval][out] */ double *Angle);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_SnapRotationAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SnapRotationAngle )( 
            IGcadPViewport * This,
            /* [in] */ double Angle);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_UCSIconOn)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UCSIconOn )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bIconOn);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_UCSIconOn)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UCSIconOn )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT_BOOL bIconOn);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_UCSIconAtOrigin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UCSIconAtOrigin )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bIconAtOrigin);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_UCSIconAtOrigin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UCSIconAtOrigin )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT_BOOL bIconAtOrigin);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, GetGridSpacing)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridSpacing )( 
            IGcadPViewport * This,
            /* [out] */ double *XSpacing,
            /* [out] */ double *YSpacing);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, SetGridSpacing)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridSpacing )( 
            IGcadPViewport * This,
            /* [in] */ double XSpacing,
            /* [in] */ double YSpacing);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, GetSnapSpacing)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSnapSpacing )( 
            IGcadPViewport * This,
            /* [out] */ double *XSpacing,
            /* [out] */ double *YSpacing);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, SetSnapSpacing)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSnapSpacing )( 
            IGcadPViewport * This,
            /* [in] */ double XSpacing,
            /* [in] */ double YSpacing);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, Display)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Display )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT_BOOL bStatus);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_TwistAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TwistAngle )( 
            IGcadPViewport * This,
            /* [retval][out] */ GCAD_ANGLE *Angle);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_TwistAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TwistAngle )( 
            IGcadPViewport * This,
            /* [in] */ GCAD_ANGLE Angle);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_LensLength)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LensLength )( 
            IGcadPViewport * This,
            /* [retval][out] */ double *Length);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_LensLength)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LensLength )( 
            IGcadPViewport * This,
            /* [in] */ double Length);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_RemoveHiddenLines)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RemoveHiddenLines )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bRemoval);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_RemoveHiddenLines)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RemoveHiddenLines )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT_BOOL bRemoval);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_Target)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Target )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT *targetPoint);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_Target)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Target )( 
            IGcadPViewport * This,
            /* [in] */ VARIANT targetPoint);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_ArcSmoothness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArcSmoothness )( 
            IGcadPViewport * This,
            /* [retval][out] */ long *arcSmooth);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_ArcSmoothness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArcSmoothness )( 
            IGcadPViewport * This,
            /* [in] */ long arcSmooth);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_VisualStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VisualStyle )( 
            IGcadPViewport * This,
            /* [retval][out] */ int *pVisualStyleIndex);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_VisualStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VisualStyle )( 
            IGcadPViewport * This,
            /* [in] */ int pVisualStyleIndex);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_ShadePlot)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadePlot )( 
            IGcadPViewport * This,
            /* [retval][out] */ int *pShadePlotIndex);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_ShadePlot)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadePlot )( 
            IGcadPViewport * This,
            /* [in] */ int pShadePlotIndex);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_ModelView)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ModelView )( 
            IGcadPViewport * This,
            /* [retval][out] */ IGcadView **View);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_ModelView)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ModelView )( 
            IGcadPViewport * This,
            /* [in] */ IGcadView *View);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_SheetView)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SheetView )( 
            IGcadPViewport * This,
            /* [retval][out] */ IGcadView **View);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_SheetView)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SheetView )( 
            IGcadPViewport * This,
            /* [in] */ IGcadView *View);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_LabelBlockId)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LabelBlockId )( 
            IGcadPViewport * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_LabelBlockId)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LabelBlockId )( 
            IGcadPViewport * This,
            /* [in] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_HasSheetView)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasSheetView )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bSheetView);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, SyncModelView)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SyncModelView )( 
            IGcadPViewport * This);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_LayerPropertyOverrides)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LayerPropertyOverrides )( 
            IGcadPViewport * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL__IGcadPViewport0000);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, get_StandardScale2)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StandardScale2 )( 
            IGcadPViewport * This,
            /* [retval][out] */ int *__MIDL__IGcadPViewport0001);
        
        DECLSPEC_XFGVIRT(IGcadPViewport, put_StandardScale2)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StandardScale2 )( 
            IGcadPViewport * This,
            /* [in] */ int rhs);
        
        END_INTERFACE
    } IGcadPViewportVtbl;

    interface IGcadPViewport
    {
        CONST_VTBL struct IGcadPViewportVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPViewport_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPViewport_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPViewport_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPViewport_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPViewport_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPViewport_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPViewport_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPViewport_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPViewport_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPViewport_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPViewport_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPViewport_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPViewport_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPViewport_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPViewport_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPViewport_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPViewport_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPViewport_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPViewport_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPViewport_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPViewport_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadPViewport_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadPViewport_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadPViewport_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadPViewport_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadPViewport_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadPViewport_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadPViewport_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadPViewport_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadPViewport_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadPViewport_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadPViewport_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadPViewport_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadPViewport_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadPViewport_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadPViewport_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadPViewport_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadPViewport_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadPViewport_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadPViewport_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadPViewport_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadPViewport_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadPViewport_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadPViewport_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadPViewport_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadPViewport_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadPViewport_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadPViewport_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadPViewport_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadPViewport_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadPViewport_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadPViewport_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadPViewport_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadPViewport_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadPViewport_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadPViewport_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadPViewport_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadPViewport_get_Center(This,CenterPoint)	\
    ( (This)->lpVtbl -> get_Center(This,CenterPoint) ) 

#define IGcadPViewport_put_Center(This,CenterPoint)	\
    ( (This)->lpVtbl -> put_Center(This,CenterPoint) ) 

#define IGcadPViewport_get_Direction(This,dirVector)	\
    ( (This)->lpVtbl -> get_Direction(This,dirVector) ) 

#define IGcadPViewport_put_Direction(This,dirVector)	\
    ( (This)->lpVtbl -> put_Direction(This,dirVector) ) 

#define IGcadPViewport_get_GridOn(This,bGridOn)	\
    ( (This)->lpVtbl -> get_GridOn(This,bGridOn) ) 

#define IGcadPViewport_put_GridOn(This,bGridOn)	\
    ( (This)->lpVtbl -> put_GridOn(This,bGridOn) ) 

#define IGcadPViewport_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadPViewport_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadPViewport_get_Width(This,Width)	\
    ( (This)->lpVtbl -> get_Width(This,Width) ) 

#define IGcadPViewport_put_Width(This,Width)	\
    ( (This)->lpVtbl -> put_Width(This,Width) ) 

#define IGcadPViewport_get_ViewportOn(This,bOn)	\
    ( (This)->lpVtbl -> get_ViewportOn(This,bOn) ) 

#define IGcadPViewport_put_ViewportOn(This,bOn)	\
    ( (This)->lpVtbl -> put_ViewportOn(This,bOn) ) 

#define IGcadPViewport_get_Clipped(This,bClipped)	\
    ( (This)->lpVtbl -> get_Clipped(This,bClipped) ) 

#define IGcadPViewport_get_DisplayLocked(This,bLocked)	\
    ( (This)->lpVtbl -> get_DisplayLocked(This,bLocked) ) 

#define IGcadPViewport_put_DisplayLocked(This,bLocked)	\
    ( (This)->lpVtbl -> put_DisplayLocked(This,bLocked) ) 

#define IGcadPViewport_get_StandardScale(This,scale)	\
    ( (This)->lpVtbl -> get_StandardScale(This,scale) ) 

#define IGcadPViewport_put_StandardScale(This,scale)	\
    ( (This)->lpVtbl -> put_StandardScale(This,scale) ) 

#define IGcadPViewport_get_CustomScale(This,scale)	\
    ( (This)->lpVtbl -> get_CustomScale(This,scale) ) 

#define IGcadPViewport_put_CustomScale(This,scale)	\
    ( (This)->lpVtbl -> put_CustomScale(This,scale) ) 

#define IGcadPViewport_get_StyleSheet(This,pName)	\
    ( (This)->lpVtbl -> get_StyleSheet(This,pName) ) 

#define IGcadPViewport_put_StyleSheet(This,pName)	\
    ( (This)->lpVtbl -> put_StyleSheet(This,pName) ) 

#define IGcadPViewport_get_UCSPerViewport(This,UCSSaved)	\
    ( (This)->lpVtbl -> get_UCSPerViewport(This,UCSSaved) ) 

#define IGcadPViewport_put_UCSPerViewport(This,UCSSaved)	\
    ( (This)->lpVtbl -> put_UCSPerViewport(This,UCSSaved) ) 

#define IGcadPViewport_get_SnapBasePoint(This,lowLeft)	\
    ( (This)->lpVtbl -> get_SnapBasePoint(This,lowLeft) ) 

#define IGcadPViewport_put_SnapBasePoint(This,lowLeft)	\
    ( (This)->lpVtbl -> put_SnapBasePoint(This,lowLeft) ) 

#define IGcadPViewport_get_SnapOn(This,bSnapOn)	\
    ( (This)->lpVtbl -> get_SnapOn(This,bSnapOn) ) 

#define IGcadPViewport_put_SnapOn(This,bSnapOn)	\
    ( (This)->lpVtbl -> put_SnapOn(This,bSnapOn) ) 

#define IGcadPViewport_get_SnapRotationAngle(This,Angle)	\
    ( (This)->lpVtbl -> get_SnapRotationAngle(This,Angle) ) 

#define IGcadPViewport_put_SnapRotationAngle(This,Angle)	\
    ( (This)->lpVtbl -> put_SnapRotationAngle(This,Angle) ) 

#define IGcadPViewport_get_UCSIconOn(This,bIconOn)	\
    ( (This)->lpVtbl -> get_UCSIconOn(This,bIconOn) ) 

#define IGcadPViewport_put_UCSIconOn(This,bIconOn)	\
    ( (This)->lpVtbl -> put_UCSIconOn(This,bIconOn) ) 

#define IGcadPViewport_get_UCSIconAtOrigin(This,bIconAtOrigin)	\
    ( (This)->lpVtbl -> get_UCSIconAtOrigin(This,bIconAtOrigin) ) 

#define IGcadPViewport_put_UCSIconAtOrigin(This,bIconAtOrigin)	\
    ( (This)->lpVtbl -> put_UCSIconAtOrigin(This,bIconAtOrigin) ) 

#define IGcadPViewport_GetGridSpacing(This,XSpacing,YSpacing)	\
    ( (This)->lpVtbl -> GetGridSpacing(This,XSpacing,YSpacing) ) 

#define IGcadPViewport_SetGridSpacing(This,XSpacing,YSpacing)	\
    ( (This)->lpVtbl -> SetGridSpacing(This,XSpacing,YSpacing) ) 

#define IGcadPViewport_GetSnapSpacing(This,XSpacing,YSpacing)	\
    ( (This)->lpVtbl -> GetSnapSpacing(This,XSpacing,YSpacing) ) 

#define IGcadPViewport_SetSnapSpacing(This,XSpacing,YSpacing)	\
    ( (This)->lpVtbl -> SetSnapSpacing(This,XSpacing,YSpacing) ) 

#define IGcadPViewport_Display(This,bStatus)	\
    ( (This)->lpVtbl -> Display(This,bStatus) ) 

#define IGcadPViewport_get_TwistAngle(This,Angle)	\
    ( (This)->lpVtbl -> get_TwistAngle(This,Angle) ) 

#define IGcadPViewport_put_TwistAngle(This,Angle)	\
    ( (This)->lpVtbl -> put_TwistAngle(This,Angle) ) 

#define IGcadPViewport_get_LensLength(This,Length)	\
    ( (This)->lpVtbl -> get_LensLength(This,Length) ) 

#define IGcadPViewport_put_LensLength(This,Length)	\
    ( (This)->lpVtbl -> put_LensLength(This,Length) ) 

#define IGcadPViewport_get_RemoveHiddenLines(This,bRemoval)	\
    ( (This)->lpVtbl -> get_RemoveHiddenLines(This,bRemoval) ) 

#define IGcadPViewport_put_RemoveHiddenLines(This,bRemoval)	\
    ( (This)->lpVtbl -> put_RemoveHiddenLines(This,bRemoval) ) 

#define IGcadPViewport_get_Target(This,targetPoint)	\
    ( (This)->lpVtbl -> get_Target(This,targetPoint) ) 

#define IGcadPViewport_put_Target(This,targetPoint)	\
    ( (This)->lpVtbl -> put_Target(This,targetPoint) ) 

#define IGcadPViewport_get_ArcSmoothness(This,arcSmooth)	\
    ( (This)->lpVtbl -> get_ArcSmoothness(This,arcSmooth) ) 

#define IGcadPViewport_put_ArcSmoothness(This,arcSmooth)	\
    ( (This)->lpVtbl -> put_ArcSmoothness(This,arcSmooth) ) 

#define IGcadPViewport_get_VisualStyle(This,pVisualStyleIndex)	\
    ( (This)->lpVtbl -> get_VisualStyle(This,pVisualStyleIndex) ) 

#define IGcadPViewport_put_VisualStyle(This,pVisualStyleIndex)	\
    ( (This)->lpVtbl -> put_VisualStyle(This,pVisualStyleIndex) ) 

#define IGcadPViewport_get_ShadePlot(This,pShadePlotIndex)	\
    ( (This)->lpVtbl -> get_ShadePlot(This,pShadePlotIndex) ) 

#define IGcadPViewport_put_ShadePlot(This,pShadePlotIndex)	\
    ( (This)->lpVtbl -> put_ShadePlot(This,pShadePlotIndex) ) 

#define IGcadPViewport_get_ModelView(This,View)	\
    ( (This)->lpVtbl -> get_ModelView(This,View) ) 

#define IGcadPViewport_put_ModelView(This,View)	\
    ( (This)->lpVtbl -> put_ModelView(This,View) ) 

#define IGcadPViewport_get_SheetView(This,View)	\
    ( (This)->lpVtbl -> get_SheetView(This,View) ) 

#define IGcadPViewport_put_SheetView(This,View)	\
    ( (This)->lpVtbl -> put_SheetView(This,View) ) 

#define IGcadPViewport_get_LabelBlockId(This,ObjectID)	\
    ( (This)->lpVtbl -> get_LabelBlockId(This,ObjectID) ) 

#define IGcadPViewport_put_LabelBlockId(This,ObjectID)	\
    ( (This)->lpVtbl -> put_LabelBlockId(This,ObjectID) ) 

#define IGcadPViewport_get_HasSheetView(This,bSheetView)	\
    ( (This)->lpVtbl -> get_HasSheetView(This,bSheetView) ) 

#define IGcadPViewport_SyncModelView(This)	\
    ( (This)->lpVtbl -> SyncModelView(This) ) 

#define IGcadPViewport_get_LayerPropertyOverrides(This,__MIDL__IGcadPViewport0000)	\
    ( (This)->lpVtbl -> get_LayerPropertyOverrides(This,__MIDL__IGcadPViewport0000) ) 

#define IGcadPViewport_get_StandardScale2(This,__MIDL__IGcadPViewport0001)	\
    ( (This)->lpVtbl -> get_StandardScale2(This,__MIDL__IGcadPViewport0001) ) 

#define IGcadPViewport_put_StandardScale2(This,rhs)	\
    ( (This)->lpVtbl -> put_StandardScale2(This,rhs) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPViewport_INTERFACE_DEFINED__ */


#ifndef __IGcadView_INTERFACE_DEFINED__
#define __IGcadView_INTERFACE_DEFINED__

/* interface IGcadView */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadView;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DE1C99A1-811D-4F40-98A6-A17186C8779A")
    IGcadView : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Center( 
            /* [retval][out] */ VARIANT *Center) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Center( 
            /* [in] */ VARIANT Center) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Width( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Target( 
            /* [retval][out] */ VARIANT *targetPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Target( 
            /* [in] */ VARIANT targetPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Direction( 
            /* [retval][out] */ VARIANT *dirVec) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Direction( 
            /* [in] */ VARIANT dirVec) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CategoryName( 
            /* [retval][out] */ BSTR *category) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CategoryName( 
            /* [in] */ BSTR category) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LayoutId( 
            /* [retval][out] */ LONG_PTR *ObjectID) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LayoutId( 
            /* [in] */ LONG_PTR ObjectID) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LayerState( 
            /* [retval][out] */ BSTR *LayerState) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LayerState( 
            /* [in] */ BSTR LayerState) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HasVpAssociation( 
            /* [retval][out] */ VARIANT_BOOL *bVpAssoc) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HasVpAssociation( 
            /* [in] */ VARIANT_BOOL bVpAssoc) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadViewVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadView * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadView * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadView * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadView * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadView * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadView * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadView * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadView * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadView * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadView * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadView * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadView * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadView * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadView * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadView * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadView * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadView * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadView * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadView * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadView * This);
        
        DECLSPEC_XFGVIRT(IGcadView, get_Center)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Center )( 
            IGcadView * This,
            /* [retval][out] */ VARIANT *Center);
        
        DECLSPEC_XFGVIRT(IGcadView, put_Center)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Center )( 
            IGcadView * This,
            /* [in] */ VARIANT Center);
        
        DECLSPEC_XFGVIRT(IGcadView, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadView * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadView, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadView * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadView, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadView * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadView, put_Width)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( 
            IGcadView * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadView, get_Target)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Target )( 
            IGcadView * This,
            /* [retval][out] */ VARIANT *targetPoint);
        
        DECLSPEC_XFGVIRT(IGcadView, put_Target)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Target )( 
            IGcadView * This,
            /* [in] */ VARIANT targetPoint);
        
        DECLSPEC_XFGVIRT(IGcadView, get_Direction)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Direction )( 
            IGcadView * This,
            /* [retval][out] */ VARIANT *dirVec);
        
        DECLSPEC_XFGVIRT(IGcadView, put_Direction)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Direction )( 
            IGcadView * This,
            /* [in] */ VARIANT dirVec);
        
        DECLSPEC_XFGVIRT(IGcadView, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadView * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadView, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadView * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadView, get_CategoryName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CategoryName )( 
            IGcadView * This,
            /* [retval][out] */ BSTR *category);
        
        DECLSPEC_XFGVIRT(IGcadView, put_CategoryName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CategoryName )( 
            IGcadView * This,
            /* [in] */ BSTR category);
        
        DECLSPEC_XFGVIRT(IGcadView, get_LayoutId)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LayoutId )( 
            IGcadView * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadView, put_LayoutId)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LayoutId )( 
            IGcadView * This,
            /* [in] */ LONG_PTR ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadView, get_LayerState)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LayerState )( 
            IGcadView * This,
            /* [retval][out] */ BSTR *LayerState);
        
        DECLSPEC_XFGVIRT(IGcadView, put_LayerState)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LayerState )( 
            IGcadView * This,
            /* [in] */ BSTR LayerState);
        
        DECLSPEC_XFGVIRT(IGcadView, get_HasVpAssociation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasVpAssociation )( 
            IGcadView * This,
            /* [retval][out] */ VARIANT_BOOL *bVpAssoc);
        
        DECLSPEC_XFGVIRT(IGcadView, put_HasVpAssociation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HasVpAssociation )( 
            IGcadView * This,
            /* [in] */ VARIANT_BOOL bVpAssoc);
        
        END_INTERFACE
    } IGcadViewVtbl;

    interface IGcadView
    {
        CONST_VTBL struct IGcadViewVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadView_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadView_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadView_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadView_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadView_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadView_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadView_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadView_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadView_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadView_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadView_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadView_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadView_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadView_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadView_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadView_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadView_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadView_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadView_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadView_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadView_get_Center(This,Center)	\
    ( (This)->lpVtbl -> get_Center(This,Center) ) 

#define IGcadView_put_Center(This,Center)	\
    ( (This)->lpVtbl -> put_Center(This,Center) ) 

#define IGcadView_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadView_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadView_get_Width(This,Width)	\
    ( (This)->lpVtbl -> get_Width(This,Width) ) 

#define IGcadView_put_Width(This,Width)	\
    ( (This)->lpVtbl -> put_Width(This,Width) ) 

#define IGcadView_get_Target(This,targetPoint)	\
    ( (This)->lpVtbl -> get_Target(This,targetPoint) ) 

#define IGcadView_put_Target(This,targetPoint)	\
    ( (This)->lpVtbl -> put_Target(This,targetPoint) ) 

#define IGcadView_get_Direction(This,dirVec)	\
    ( (This)->lpVtbl -> get_Direction(This,dirVec) ) 

#define IGcadView_put_Direction(This,dirVec)	\
    ( (This)->lpVtbl -> put_Direction(This,dirVec) ) 

#define IGcadView_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadView_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadView_get_CategoryName(This,category)	\
    ( (This)->lpVtbl -> get_CategoryName(This,category) ) 

#define IGcadView_put_CategoryName(This,category)	\
    ( (This)->lpVtbl -> put_CategoryName(This,category) ) 

#define IGcadView_get_LayoutId(This,ObjectID)	\
    ( (This)->lpVtbl -> get_LayoutId(This,ObjectID) ) 

#define IGcadView_put_LayoutId(This,ObjectID)	\
    ( (This)->lpVtbl -> put_LayoutId(This,ObjectID) ) 

#define IGcadView_get_LayerState(This,LayerState)	\
    ( (This)->lpVtbl -> get_LayerState(This,LayerState) ) 

#define IGcadView_put_LayerState(This,LayerState)	\
    ( (This)->lpVtbl -> put_LayerState(This,LayerState) ) 

#define IGcadView_get_HasVpAssociation(This,bVpAssoc)	\
    ( (This)->lpVtbl -> get_HasVpAssociation(This,bVpAssoc) ) 

#define IGcadView_put_HasVpAssociation(This,bVpAssoc)	\
    ( (This)->lpVtbl -> put_HasVpAssociation(This,bVpAssoc) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadView_INTERFACE_DEFINED__ */


#ifndef __IGcadBlocks_INTERFACE_DEFINED__
#define __IGcadBlocks_INTERFACE_DEFINED__

/* interface IGcadBlocks */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadBlocks;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E69E9F83-F577-403C-8F69-7F5E86AB61F4")
    IGcadBlocks : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadBlock **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadBlock **pBlock) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadBlocksVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadBlocks * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadBlocks * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadBlocks * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadBlocks * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadBlocks * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadBlocks * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadBlocks * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadBlocks * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadBlocks * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadBlocks * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadBlocks * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadBlocks * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadBlocks * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadBlocks * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadBlocks * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadBlocks * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadBlocks * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadBlocks * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadBlocks * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadBlocks * This);
        
        DECLSPEC_XFGVIRT(IGcadBlocks, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadBlocks * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadBlock **pItem);
        
        DECLSPEC_XFGVIRT(IGcadBlocks, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadBlocks * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadBlocks, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadBlocks * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadBlocks, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadBlocks * This,
            /* [in] */ VARIANT InsertionPoint,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadBlock **pBlock);
        
        END_INTERFACE
    } IGcadBlocksVtbl;

    interface IGcadBlocks
    {
        CONST_VTBL struct IGcadBlocksVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadBlocks_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadBlocks_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadBlocks_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadBlocks_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadBlocks_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadBlocks_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadBlocks_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadBlocks_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadBlocks_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadBlocks_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadBlocks_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadBlocks_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadBlocks_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadBlocks_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadBlocks_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadBlocks_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadBlocks_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadBlocks_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadBlocks_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadBlocks_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadBlocks_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadBlocks_get_Count(This,pVal)	\
    ( (This)->lpVtbl -> get_Count(This,pVal) ) 

#define IGcadBlocks_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadBlocks_Add(This,InsertionPoint,Name,pBlock)	\
    ( (This)->lpVtbl -> Add(This,InsertionPoint,Name,pBlock) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadBlocks_INTERFACE_DEFINED__ */


#ifndef __IGcadGroups_INTERFACE_DEFINED__
#define __IGcadGroups_INTERFACE_DEFINED__

/* interface IGcadGroups */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadGroups;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1AFDB2C1-88C9-4BEE-8F5E-F4661538F170")
    IGcadGroups : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadGroup **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadGroup **pDimStyle) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadGroupsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadGroups * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadGroups * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadGroups * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadGroups * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadGroups * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadGroups * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadGroups * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadGroups * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadGroups * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadGroups * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadGroups * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadGroups * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadGroups * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadGroups * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadGroups * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadGroups * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadGroups * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadGroups * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadGroups * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadGroups * This);
        
        DECLSPEC_XFGVIRT(IGcadGroups, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadGroups * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadGroup **pItem);
        
        DECLSPEC_XFGVIRT(IGcadGroups, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadGroups * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadGroups, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadGroups * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadGroups, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadGroups * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadGroup **pDimStyle);
        
        END_INTERFACE
    } IGcadGroupsVtbl;

    interface IGcadGroups
    {
        CONST_VTBL struct IGcadGroupsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadGroups_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadGroups_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadGroups_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadGroups_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadGroups_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadGroups_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadGroups_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadGroups_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadGroups_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadGroups_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadGroups_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadGroups_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadGroups_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadGroups_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadGroups_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadGroups_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadGroups_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadGroups_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadGroups_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadGroups_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadGroups_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadGroups_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadGroups_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadGroups_Add(This,Name,pDimStyle)	\
    ( (This)->lpVtbl -> Add(This,Name,pDimStyle) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadGroups_INTERFACE_DEFINED__ */


#ifndef __IGcadGroup_INTERFACE_DEFINED__
#define __IGcadGroup_INTERFACE_DEFINED__

/* interface IGcadGroup */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadGroup;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4B02E349-191E-4736-BDE6-52C2D458E0F5")
    IGcadGroup : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadEntity **ppEntity) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TrueColor( 
            /* [in] */ IGcadGcCmColor *rhs) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Layer( 
            /* [in] */ BSTR rhs) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Linetype( 
            /* [in] */ BSTR rhs) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LinetypeScale( 
            /* [in] */ GCAD_NOUNITS rhs) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Visible( 
            /* [in] */ VARIANT_BOOL rhs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Highlight( 
            /* [in] */ VARIANT_BOOL HighlightFlag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PlotStyleName( 
            /* [in] */ BSTR rhs) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Lineweight( 
            /* [in] */ GCAD_LWEIGHT rhs) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AppendItems( 
            /* [in] */ VARIANT Objects) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveItems( 
            /* [in] */ VARIANT Objects) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Update( void) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Material( 
            /* [in] */ BSTR rhs) = 0;
        
        virtual /* [helpstring][hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_Color( 
            /* [in] */ GcColor rhs) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadGroupVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadGroup * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadGroup * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadGroup * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadGroup * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadGroup * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadGroup * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadGroup * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadGroup * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadGroup * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadGroup * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadGroup * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadGroup * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadGroup * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadGroup * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadGroup * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadGroup * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadGroup * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadGroup * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadGroup * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadGroup * This);
        
        DECLSPEC_XFGVIRT(IGcadGroup, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadGroup * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadEntity **ppEntity);
        
        DECLSPEC_XFGVIRT(IGcadGroup, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadGroup * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadGroup, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadGroup * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadGroup, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadGroup * This,
            /* [in] */ IGcadGcCmColor *rhs);
        
        DECLSPEC_XFGVIRT(IGcadGroup, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadGroup * This,
            /* [in] */ BSTR rhs);
        
        DECLSPEC_XFGVIRT(IGcadGroup, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadGroup * This,
            /* [in] */ BSTR rhs);
        
        DECLSPEC_XFGVIRT(IGcadGroup, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadGroup * This,
            /* [in] */ GCAD_NOUNITS rhs);
        
        DECLSPEC_XFGVIRT(IGcadGroup, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadGroup * This,
            /* [in] */ VARIANT_BOOL rhs);
        
        DECLSPEC_XFGVIRT(IGcadGroup, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadGroup * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadGroup, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadGroup * This,
            /* [in] */ BSTR rhs);
        
        DECLSPEC_XFGVIRT(IGcadGroup, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadGroup * This,
            /* [in] */ GCAD_LWEIGHT rhs);
        
        DECLSPEC_XFGVIRT(IGcadGroup, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadGroup * This,
            /* [retval][out] */ BSTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcadGroup, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadGroup * This,
            /* [in] */ BSTR pVal);
        
        DECLSPEC_XFGVIRT(IGcadGroup, AppendItems)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AppendItems )( 
            IGcadGroup * This,
            /* [in] */ VARIANT Objects);
        
        DECLSPEC_XFGVIRT(IGcadGroup, RemoveItems)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveItems )( 
            IGcadGroup * This,
            /* [in] */ VARIANT Objects);
        
        DECLSPEC_XFGVIRT(IGcadGroup, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadGroup * This);
        
        DECLSPEC_XFGVIRT(IGcadGroup, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadGroup * This,
            /* [in] */ BSTR rhs);
        
        DECLSPEC_XFGVIRT(IGcadGroup, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadGroup * This,
            /* [in] */ GcColor rhs);
        
        END_INTERFACE
    } IGcadGroupVtbl;

    interface IGcadGroup
    {
        CONST_VTBL struct IGcadGroupVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadGroup_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadGroup_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadGroup_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadGroup_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadGroup_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadGroup_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadGroup_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadGroup_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadGroup_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadGroup_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadGroup_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadGroup_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadGroup_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadGroup_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadGroup_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadGroup_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadGroup_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadGroup_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadGroup_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadGroup_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadGroup_Item(This,Index,ppEntity)	\
    ( (This)->lpVtbl -> Item(This,Index,ppEntity) ) 

#define IGcadGroup_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadGroup_get_Count(This,pVal)	\
    ( (This)->lpVtbl -> get_Count(This,pVal) ) 

#define IGcadGroup_put_TrueColor(This,rhs)	\
    ( (This)->lpVtbl -> put_TrueColor(This,rhs) ) 

#define IGcadGroup_put_Layer(This,rhs)	\
    ( (This)->lpVtbl -> put_Layer(This,rhs) ) 

#define IGcadGroup_put_Linetype(This,rhs)	\
    ( (This)->lpVtbl -> put_Linetype(This,rhs) ) 

#define IGcadGroup_put_LinetypeScale(This,rhs)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,rhs) ) 

#define IGcadGroup_put_Visible(This,rhs)	\
    ( (This)->lpVtbl -> put_Visible(This,rhs) ) 

#define IGcadGroup_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadGroup_put_PlotStyleName(This,rhs)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,rhs) ) 

#define IGcadGroup_put_Lineweight(This,rhs)	\
    ( (This)->lpVtbl -> put_Lineweight(This,rhs) ) 

#define IGcadGroup_get_Name(This,pVal)	\
    ( (This)->lpVtbl -> get_Name(This,pVal) ) 

#define IGcadGroup_put_Name(This,pVal)	\
    ( (This)->lpVtbl -> put_Name(This,pVal) ) 

#define IGcadGroup_AppendItems(This,Objects)	\
    ( (This)->lpVtbl -> AppendItems(This,Objects) ) 

#define IGcadGroup_RemoveItems(This,Objects)	\
    ( (This)->lpVtbl -> RemoveItems(This,Objects) ) 

#define IGcadGroup_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadGroup_put_Material(This,rhs)	\
    ( (This)->lpVtbl -> put_Material(This,rhs) ) 

#define IGcadGroup_put_Color(This,rhs)	\
    ( (This)->lpVtbl -> put_Color(This,rhs) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadGroup_INTERFACE_DEFINED__ */


#ifndef __IGcadDimStyles_INTERFACE_DEFINED__
#define __IGcadDimStyles_INTERFACE_DEFINED__

/* interface IGcadDimStyles */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDimStyles;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B6084632-4A92-45F4-B8F7-0A91824DADB5")
    IGcadDimStyles : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadDimStyle **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadDimStyle **pDimStyle) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDimStylesVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDimStyles * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDimStyles * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDimStyles * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDimStyles * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDimStyles * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDimStyles * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDimStyles * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDimStyles * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDimStyles * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDimStyles * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDimStyles * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDimStyles * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDimStyles * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDimStyles * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDimStyles * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDimStyles * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDimStyles * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDimStyles * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDimStyles * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDimStyles * This);
        
        DECLSPEC_XFGVIRT(IGcadDimStyles, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadDimStyles * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadDimStyle **pItem);
        
        DECLSPEC_XFGVIRT(IGcadDimStyles, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadDimStyles * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadDimStyles, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadDimStyles * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadDimStyles, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadDimStyles * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadDimStyle **pDimStyle);
        
        END_INTERFACE
    } IGcadDimStylesVtbl;

    interface IGcadDimStyles
    {
        CONST_VTBL struct IGcadDimStylesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDimStyles_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDimStyles_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDimStyles_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDimStyles_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDimStyles_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDimStyles_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDimStyles_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDimStyles_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDimStyles_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDimStyles_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDimStyles_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDimStyles_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDimStyles_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDimStyles_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDimStyles_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDimStyles_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDimStyles_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDimStyles_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDimStyles_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDimStyles_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDimStyles_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadDimStyles_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadDimStyles_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadDimStyles_Add(This,Name,pDimStyle)	\
    ( (This)->lpVtbl -> Add(This,Name,pDimStyle) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadDimStyles_INTERFACE_DEFINED__ */


#ifndef __IGcadDimStyle_INTERFACE_DEFINED__
#define __IGcadDimStyle_INTERFACE_DEFINED__

/* interface IGcadDimStyle */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDimStyle;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("88A65332-E185-46B4-9520-CA3305361E4B")
    IGcadDimStyle : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CopyFrom( 
            /* [in] */ IDispatch *StyleSource) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDimStyleVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDimStyle * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDimStyle * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDimStyle * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDimStyle * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDimStyle * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDimStyle * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDimStyle * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDimStyle * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDimStyle * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDimStyle * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDimStyle * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDimStyle * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDimStyle * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDimStyle * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDimStyle * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDimStyle * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDimStyle * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDimStyle * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDimStyle * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDimStyle * This);
        
        DECLSPEC_XFGVIRT(IGcadDimStyle, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadDimStyle * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimStyle, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadDimStyle * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDimStyle, CopyFrom)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CopyFrom )( 
            IGcadDimStyle * This,
            /* [in] */ IDispatch *StyleSource);
        
        END_INTERFACE
    } IGcadDimStyleVtbl;

    interface IGcadDimStyle
    {
        CONST_VTBL struct IGcadDimStyleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDimStyle_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDimStyle_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDimStyle_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDimStyle_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDimStyle_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDimStyle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDimStyle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDimStyle_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDimStyle_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDimStyle_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDimStyle_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDimStyle_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDimStyle_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDimStyle_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDimStyle_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDimStyle_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDimStyle_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDimStyle_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDimStyle_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDimStyle_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDimStyle_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadDimStyle_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadDimStyle_CopyFrom(This,StyleSource)	\
    ( (This)->lpVtbl -> CopyFrom(This,StyleSource) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadDimStyle_INTERFACE_DEFINED__ */


#ifndef __IGcadLayers_INTERFACE_DEFINED__
#define __IGcadLayers_INTERFACE_DEFINED__

/* interface IGcadLayers */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadLayers;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7A9DE5C4-4D94-42BC-87DB-3D85D953A128")
    IGcadLayers : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadLayer **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadLayer **pLayer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GenerateUsageData( void) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadLayersVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadLayers * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadLayers * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadLayers * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadLayers * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadLayers * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadLayers * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadLayers * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadLayers * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadLayers * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadLayers * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadLayers * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadLayers * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadLayers * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadLayers * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadLayers * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadLayers * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadLayers * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadLayers * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadLayers * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadLayers * This);
        
        DECLSPEC_XFGVIRT(IGcadLayers, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadLayers * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadLayer **pItem);
        
        DECLSPEC_XFGVIRT(IGcadLayers, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadLayers * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadLayers, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadLayers * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadLayers, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadLayers * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadLayer **pLayer);
        
        DECLSPEC_XFGVIRT(IGcadLayers, GenerateUsageData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GenerateUsageData )( 
            IGcadLayers * This);
        
        END_INTERFACE
    } IGcadLayersVtbl;

    interface IGcadLayers
    {
        CONST_VTBL struct IGcadLayersVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadLayers_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadLayers_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadLayers_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadLayers_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadLayers_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadLayers_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadLayers_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadLayers_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadLayers_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadLayers_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadLayers_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadLayers_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadLayers_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadLayers_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadLayers_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadLayers_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadLayers_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadLayers_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadLayers_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadLayers_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadLayers_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadLayers_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadLayers_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadLayers_Add(This,Name,pLayer)	\
    ( (This)->lpVtbl -> Add(This,Name,pLayer) ) 

#define IGcadLayers_GenerateUsageData(This)	\
    ( (This)->lpVtbl -> GenerateUsageData(This) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadLayers_INTERFACE_DEFINED__ */


#ifndef __IGcadLayer_INTERFACE_DEFINED__
#define __IGcadLayer_INTERFACE_DEFINED__

/* interface IGcadLayer */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadLayer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("369B3B72-01B7-4C1B-85C9-4E662705D76C")
    IGcadLayer : public IGcadObject
    {
    public:
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_Color( 
            /* [retval][out] */ GcColor *color) = 0;
        
        virtual /* [helpstring][hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_Color( 
            /* [in] */ GcColor color) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TrueColor( 
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TrueColor( 
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Freeze( 
            /* [retval][out] */ VARIANT_BOOL *bFreeze) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Freeze( 
            /* [in] */ VARIANT_BOOL bFreeze) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LayerOn( 
            /* [retval][out] */ VARIANT_BOOL *bOn) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LayerOn( 
            /* [in] */ VARIANT_BOOL bOn) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Linetype( 
            /* [in] */ BSTR Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Lock( 
            /* [retval][out] */ VARIANT_BOOL *Block) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Lock( 
            /* [in] */ VARIANT_BOOL Block) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Plottable( 
            /* [retval][out] */ VARIANT_BOOL *bPlottable) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Plottable( 
            /* [in] */ VARIANT_BOOL bPlottable) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ViewportDefault( 
            /* [retval][out] */ VARIANT_BOOL *bDefault) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ViewportDefault( 
            /* [in] */ VARIANT_BOOL bDefault) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotStyleName( 
            /* [retval][out] */ BSTR *plotStyle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_PlotStyleName( 
            /* [in] */ BSTR plotStyle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Lineweight( 
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Lineweight( 
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *Description) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Description( 
            /* [in] */ BSTR Description) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Used( 
            /* [retval][out] */ VARIANT_BOOL *bUsed) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Material( 
            /* [retval][out] */ BSTR *Material) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Material( 
            /* [in] */ BSTR Material) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadLayerVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadLayer * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadLayer * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadLayer * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadLayer * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadLayer * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadLayer * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadLayer * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadLayer * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadLayer * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadLayer * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadLayer * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadLayer * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadLayer * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadLayer * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadLayer * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadLayer * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadLayer * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadLayer * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadLayer * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadLayer * This);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadLayer * This,
            /* [retval][out] */ GcColor *color);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadLayer * This,
            /* [in] */ GcColor color);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadLayer * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadLayer * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_Freeze)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Freeze )( 
            IGcadLayer * This,
            /* [retval][out] */ VARIANT_BOOL *bFreeze);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_Freeze)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Freeze )( 
            IGcadLayer * This,
            /* [in] */ VARIANT_BOOL bFreeze);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_LayerOn)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LayerOn )( 
            IGcadLayer * This,
            /* [retval][out] */ VARIANT_BOOL *bOn);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_LayerOn)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LayerOn )( 
            IGcadLayer * This,
            /* [in] */ VARIANT_BOOL bOn);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadLayer * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadLayer * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_Lock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lock )( 
            IGcadLayer * This,
            /* [retval][out] */ VARIANT_BOOL *Block);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_Lock)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lock )( 
            IGcadLayer * This,
            /* [in] */ VARIANT_BOOL Block);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadLayer * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadLayer * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_Plottable)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Plottable )( 
            IGcadLayer * This,
            /* [retval][out] */ VARIANT_BOOL *bPlottable);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_Plottable)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Plottable )( 
            IGcadLayer * This,
            /* [in] */ VARIANT_BOOL bPlottable);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_ViewportDefault)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ViewportDefault )( 
            IGcadLayer * This,
            /* [retval][out] */ VARIANT_BOOL *bDefault);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_ViewportDefault)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ViewportDefault )( 
            IGcadLayer * This,
            /* [in] */ VARIANT_BOOL bDefault);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadLayer * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadLayer * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadLayer * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadLayer * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_Description)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IGcadLayer * This,
            /* [retval][out] */ BSTR *Description);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_Description)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
            IGcadLayer * This,
            /* [in] */ BSTR Description);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_Used)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Used )( 
            IGcadLayer * This,
            /* [retval][out] */ VARIANT_BOOL *bUsed);
        
        DECLSPEC_XFGVIRT(IGcadLayer, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadLayer * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadLayer, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadLayer * This,
            /* [in] */ BSTR Material);
        
        END_INTERFACE
    } IGcadLayerVtbl;

    interface IGcadLayer
    {
        CONST_VTBL struct IGcadLayerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadLayer_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadLayer_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadLayer_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadLayer_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadLayer_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadLayer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadLayer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadLayer_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadLayer_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadLayer_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadLayer_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadLayer_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadLayer_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadLayer_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadLayer_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadLayer_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadLayer_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadLayer_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadLayer_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadLayer_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadLayer_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadLayer_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 

#define IGcadLayer_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadLayer_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadLayer_get_Freeze(This,bFreeze)	\
    ( (This)->lpVtbl -> get_Freeze(This,bFreeze) ) 

#define IGcadLayer_put_Freeze(This,bFreeze)	\
    ( (This)->lpVtbl -> put_Freeze(This,bFreeze) ) 

#define IGcadLayer_get_LayerOn(This,bOn)	\
    ( (This)->lpVtbl -> get_LayerOn(This,bOn) ) 

#define IGcadLayer_put_LayerOn(This,bOn)	\
    ( (This)->lpVtbl -> put_LayerOn(This,bOn) ) 

#define IGcadLayer_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadLayer_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadLayer_get_Lock(This,Block)	\
    ( (This)->lpVtbl -> get_Lock(This,Block) ) 

#define IGcadLayer_put_Lock(This,Block)	\
    ( (This)->lpVtbl -> put_Lock(This,Block) ) 

#define IGcadLayer_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadLayer_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadLayer_get_Plottable(This,bPlottable)	\
    ( (This)->lpVtbl -> get_Plottable(This,bPlottable) ) 

#define IGcadLayer_put_Plottable(This,bPlottable)	\
    ( (This)->lpVtbl -> put_Plottable(This,bPlottable) ) 

#define IGcadLayer_get_ViewportDefault(This,bDefault)	\
    ( (This)->lpVtbl -> get_ViewportDefault(This,bDefault) ) 

#define IGcadLayer_put_ViewportDefault(This,bDefault)	\
    ( (This)->lpVtbl -> put_ViewportDefault(This,bDefault) ) 

#define IGcadLayer_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadLayer_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadLayer_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadLayer_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadLayer_get_Description(This,Description)	\
    ( (This)->lpVtbl -> get_Description(This,Description) ) 

#define IGcadLayer_put_Description(This,Description)	\
    ( (This)->lpVtbl -> put_Description(This,Description) ) 

#define IGcadLayer_get_Used(This,bUsed)	\
    ( (This)->lpVtbl -> get_Used(This,bUsed) ) 

#define IGcadLayer_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadLayer_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadLayer_INTERFACE_DEFINED__ */


#ifndef __IGcadLineTypes_INTERFACE_DEFINED__
#define __IGcadLineTypes_INTERFACE_DEFINED__

/* interface IGcadLineTypes */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadLineTypes;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("ED574116-AE18-4BB2-9628-1921C110F038")
    IGcadLineTypes : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadLineType **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadLineType **pLinetype) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Load( 
            /* [in] */ BSTR Name,
            /* [in] */ BSTR FileName) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadLineTypesVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadLineTypes * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadLineTypes * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadLineTypes * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadLineTypes * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadLineTypes * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadLineTypes * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadLineTypes * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadLineTypes * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadLineTypes * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadLineTypes * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadLineTypes * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadLineTypes * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadLineTypes * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadLineTypes * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadLineTypes * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadLineTypes * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadLineTypes * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadLineTypes * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadLineTypes * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadLineTypes * This);
        
        DECLSPEC_XFGVIRT(IGcadLineTypes, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadLineTypes * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadLineType **pItem);
        
        DECLSPEC_XFGVIRT(IGcadLineTypes, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadLineTypes * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadLineTypes, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadLineTypes * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadLineTypes, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadLineTypes * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadLineType **pLinetype);
        
        DECLSPEC_XFGVIRT(IGcadLineTypes, Load)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Load )( 
            IGcadLineTypes * This,
            /* [in] */ BSTR Name,
            /* [in] */ BSTR FileName);
        
        END_INTERFACE
    } IGcadLineTypesVtbl;

    interface IGcadLineTypes
    {
        CONST_VTBL struct IGcadLineTypesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadLineTypes_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadLineTypes_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadLineTypes_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadLineTypes_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadLineTypes_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadLineTypes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadLineTypes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadLineTypes_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadLineTypes_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadLineTypes_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadLineTypes_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadLineTypes_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadLineTypes_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadLineTypes_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadLineTypes_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadLineTypes_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadLineTypes_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadLineTypes_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadLineTypes_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadLineTypes_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadLineTypes_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadLineTypes_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadLineTypes_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadLineTypes_Add(This,Name,pLinetype)	\
    ( (This)->lpVtbl -> Add(This,Name,pLinetype) ) 

#define IGcadLineTypes_Load(This,Name,FileName)	\
    ( (This)->lpVtbl -> Load(This,Name,FileName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadLineTypes_INTERFACE_DEFINED__ */


#ifndef __IGcadLineType_INTERFACE_DEFINED__
#define __IGcadLineType_INTERFACE_DEFINED__

/* interface IGcadLineType */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadLineType;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("39F82095-F5D0-4E82-8C15-483E1EA2DB2C")
    IGcadLineType : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *bstrDes) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Description( 
            /* [in] */ BSTR bstrDes) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadLineTypeVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadLineType * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadLineType * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadLineType * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadLineType * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadLineType * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadLineType * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadLineType * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadLineType * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadLineType * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadLineType * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadLineType * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadLineType * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadLineType * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadLineType * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadLineType * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadLineType * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadLineType * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadLineType * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadLineType * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadLineType * This);
        
        DECLSPEC_XFGVIRT(IGcadLineType, get_Description)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IGcadLineType * This,
            /* [retval][out] */ BSTR *bstrDes);
        
        DECLSPEC_XFGVIRT(IGcadLineType, put_Description)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
            IGcadLineType * This,
            /* [in] */ BSTR bstrDes);
        
        DECLSPEC_XFGVIRT(IGcadLineType, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadLineType * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadLineType, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadLineType * This,
            /* [in] */ BSTR bstrName);
        
        END_INTERFACE
    } IGcadLineTypeVtbl;

    interface IGcadLineType
    {
        CONST_VTBL struct IGcadLineTypeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadLineType_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadLineType_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadLineType_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadLineType_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadLineType_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadLineType_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadLineType_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadLineType_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadLineType_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadLineType_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadLineType_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadLineType_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadLineType_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadLineType_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadLineType_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadLineType_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadLineType_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadLineType_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadLineType_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadLineType_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadLineType_get_Description(This,bstrDes)	\
    ( (This)->lpVtbl -> get_Description(This,bstrDes) ) 

#define IGcadLineType_put_Description(This,bstrDes)	\
    ( (This)->lpVtbl -> put_Description(This,bstrDes) ) 

#define IGcadLineType_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadLineType_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadLineType_INTERFACE_DEFINED__ */


#ifndef __IGcadDictionaries_INTERFACE_DEFINED__
#define __IGcadDictionaries_INTERFACE_DEFINED__

/* interface IGcadDictionaries */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDictionaries;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7258BEDC-7CBD-4758-9F17-4ADC3C2C7C9E")
    IGcadDictionaries : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadObject **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadDictionary **pDimStyle) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDictionariesVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDictionaries * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDictionaries * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDictionaries * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDictionaries * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDictionaries * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDictionaries * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDictionaries * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDictionaries * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDictionaries * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDictionaries * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDictionaries * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDictionaries * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDictionaries * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDictionaries * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDictionaries * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDictionaries * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDictionaries * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDictionaries * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDictionaries * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDictionaries * This);
        
        DECLSPEC_XFGVIRT(IGcadDictionaries, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadDictionaries * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadObject **pItem);
        
        DECLSPEC_XFGVIRT(IGcadDictionaries, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadDictionaries * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadDictionaries, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadDictionaries * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadDictionaries, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadDictionaries * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadDictionary **pDimStyle);
        
        END_INTERFACE
    } IGcadDictionariesVtbl;

    interface IGcadDictionaries
    {
        CONST_VTBL struct IGcadDictionariesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDictionaries_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDictionaries_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDictionaries_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDictionaries_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDictionaries_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDictionaries_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDictionaries_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDictionaries_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDictionaries_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDictionaries_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDictionaries_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDictionaries_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDictionaries_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDictionaries_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDictionaries_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDictionaries_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDictionaries_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDictionaries_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDictionaries_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDictionaries_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDictionaries_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadDictionaries_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadDictionaries_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadDictionaries_Add(This,Name,pDimStyle)	\
    ( (This)->lpVtbl -> Add(This,Name,pDimStyle) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadDictionaries_INTERFACE_DEFINED__ */


#ifndef __IGcadDictionary_INTERFACE_DEFINED__
#define __IGcadDictionary_INTERFACE_DEFINED__

/* interface IGcadDictionary */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDictionary;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6CE21DA5-2896-4D63-9373-2EE672A00D41")
    IGcadDictionary : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddObject( 
            /* [in] */ BSTR Keyword,
            /* [in] */ BSTR ObjectName,
            /* [retval][out] */ IGcadObject **pNewObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetName( 
            /* [in] */ IGcadObject *Object,
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetObject( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadObject **pObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Remove( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadObject **pObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Rename( 
            /* [in] */ BSTR OldName,
            /* [in] */ BSTR NewName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Replace( 
            /* [in] */ BSTR OldName,
            /* [in] */ IGcadObject *pObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadObject **pItem) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddXRecord( 
            /* [in] */ BSTR Keyword,
            /* [retval][out] */ IGcadXRecord **pNewXRecord) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDictionaryVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDictionary * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDictionary * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDictionary * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDictionary * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDictionary * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDictionary * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDictionary * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDictionary * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDictionary * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDictionary * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDictionary * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDictionary * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDictionary * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDictionary * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDictionary * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDictionary * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDictionary * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDictionary * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDictionary * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDictionary * This);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadDictionary * This,
            /* [retval][out] */ BSTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadDictionary * This,
            /* [in] */ BSTR pVal);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, AddObject)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddObject )( 
            IGcadDictionary * This,
            /* [in] */ BSTR Keyword,
            /* [in] */ BSTR ObjectName,
            /* [retval][out] */ IGcadObject **pNewObj);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, GetName)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetName )( 
            IGcadDictionary * This,
            /* [in] */ IGcadObject *Object,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, GetObject)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetObject )( 
            IGcadDictionary * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadObject **pObj);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, Remove)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remove )( 
            IGcadDictionary * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadObject **pObj);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, Rename)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rename )( 
            IGcadDictionary * This,
            /* [in] */ BSTR OldName,
            /* [in] */ BSTR NewName);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, Replace)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Replace )( 
            IGcadDictionary * This,
            /* [in] */ BSTR OldName,
            /* [in] */ IGcadObject *pObj);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadDictionary * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadObject **pItem);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadDictionary * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadDictionary * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadDictionary, AddXRecord)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddXRecord )( 
            IGcadDictionary * This,
            /* [in] */ BSTR Keyword,
            /* [retval][out] */ IGcadXRecord **pNewXRecord);
        
        END_INTERFACE
    } IGcadDictionaryVtbl;

    interface IGcadDictionary
    {
        CONST_VTBL struct IGcadDictionaryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDictionary_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDictionary_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDictionary_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDictionary_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDictionary_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDictionary_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDictionary_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDictionary_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDictionary_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDictionary_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDictionary_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDictionary_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDictionary_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDictionary_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDictionary_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDictionary_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDictionary_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDictionary_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDictionary_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDictionary_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDictionary_get_Name(This,pVal)	\
    ( (This)->lpVtbl -> get_Name(This,pVal) ) 

#define IGcadDictionary_put_Name(This,pVal)	\
    ( (This)->lpVtbl -> put_Name(This,pVal) ) 

#define IGcadDictionary_AddObject(This,Keyword,ObjectName,pNewObj)	\
    ( (This)->lpVtbl -> AddObject(This,Keyword,ObjectName,pNewObj) ) 

#define IGcadDictionary_GetName(This,Object,bstrName)	\
    ( (This)->lpVtbl -> GetName(This,Object,bstrName) ) 

#define IGcadDictionary_GetObject(This,Name,pObj)	\
    ( (This)->lpVtbl -> GetObject(This,Name,pObj) ) 

#define IGcadDictionary_Remove(This,Name,pObj)	\
    ( (This)->lpVtbl -> Remove(This,Name,pObj) ) 

#define IGcadDictionary_Rename(This,OldName,NewName)	\
    ( (This)->lpVtbl -> Rename(This,OldName,NewName) ) 

#define IGcadDictionary_Replace(This,OldName,pObj)	\
    ( (This)->lpVtbl -> Replace(This,OldName,pObj) ) 

#define IGcadDictionary_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadDictionary_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadDictionary_get_Count(This,pVal)	\
    ( (This)->lpVtbl -> get_Count(This,pVal) ) 

#define IGcadDictionary_AddXRecord(This,Keyword,pNewXRecord)	\
    ( (This)->lpVtbl -> AddXRecord(This,Keyword,pNewXRecord) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadDictionary_INTERFACE_DEFINED__ */


#ifndef __IGcadXRecord_INTERFACE_DEFINED__
#define __IGcadXRecord_INTERFACE_DEFINED__

/* interface IGcadXRecord */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadXRecord;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("153C1376-952E-4696-94A0-F57364AA6836")
    IGcadXRecord : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetXRecordData( 
            /* [out] */ VARIANT *XRecordDataType,
            /* [out] */ VARIANT *XRecordDataValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetXRecordData( 
            /* [in] */ VARIANT XRecordDataType,
            /* [in] */ VARIANT XRecordDataValue) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TranslateIDs( 
            /* [retval][out] */ VARIANT_BOOL *xlateIds) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TranslateIDs( 
            /* [in] */ VARIANT_BOOL xlateIds) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadXRecordVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadXRecord * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadXRecord * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadXRecord * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadXRecord * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadXRecord * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadXRecord * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadXRecord * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadXRecord * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadXRecord * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadXRecord * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadXRecord * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadXRecord * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadXRecord * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadXRecord * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadXRecord * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadXRecord * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadXRecord * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadXRecord * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadXRecord * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadXRecord * This);
        
        DECLSPEC_XFGVIRT(IGcadXRecord, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadXRecord * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadXRecord, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadXRecord * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadXRecord, GetXRecordData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXRecordData )( 
            IGcadXRecord * This,
            /* [out] */ VARIANT *XRecordDataType,
            /* [out] */ VARIANT *XRecordDataValue);
        
        DECLSPEC_XFGVIRT(IGcadXRecord, SetXRecordData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXRecordData )( 
            IGcadXRecord * This,
            /* [in] */ VARIANT XRecordDataType,
            /* [in] */ VARIANT XRecordDataValue);
        
        DECLSPEC_XFGVIRT(IGcadXRecord, get_TranslateIDs)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TranslateIDs )( 
            IGcadXRecord * This,
            /* [retval][out] */ VARIANT_BOOL *xlateIds);
        
        DECLSPEC_XFGVIRT(IGcadXRecord, put_TranslateIDs)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TranslateIDs )( 
            IGcadXRecord * This,
            /* [in] */ VARIANT_BOOL xlateIds);
        
        END_INTERFACE
    } IGcadXRecordVtbl;

    interface IGcadXRecord
    {
        CONST_VTBL struct IGcadXRecordVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadXRecord_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadXRecord_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadXRecord_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadXRecord_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadXRecord_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadXRecord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadXRecord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadXRecord_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadXRecord_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadXRecord_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadXRecord_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadXRecord_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadXRecord_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadXRecord_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadXRecord_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadXRecord_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadXRecord_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadXRecord_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadXRecord_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadXRecord_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadXRecord_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadXRecord_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadXRecord_GetXRecordData(This,XRecordDataType,XRecordDataValue)	\
    ( (This)->lpVtbl -> GetXRecordData(This,XRecordDataType,XRecordDataValue) ) 

#define IGcadXRecord_SetXRecordData(This,XRecordDataType,XRecordDataValue)	\
    ( (This)->lpVtbl -> SetXRecordData(This,XRecordDataType,XRecordDataValue) ) 

#define IGcadXRecord_get_TranslateIDs(This,xlateIds)	\
    ( (This)->lpVtbl -> get_TranslateIDs(This,xlateIds) ) 

#define IGcadXRecord_put_TranslateIDs(This,xlateIds)	\
    ( (This)->lpVtbl -> put_TranslateIDs(This,xlateIds) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadXRecord_INTERFACE_DEFINED__ */


#ifndef __IGcadRegisteredApplications_INTERFACE_DEFINED__
#define __IGcadRegisteredApplications_INTERFACE_DEFINED__

/* interface IGcadRegisteredApplications */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadRegisteredApplications;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FA985110-D0CB-4E62-AB01-2FE6027C7F05")
    IGcadRegisteredApplications : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadRegisteredApplication **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadRegisteredApplication **pRegApp) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadRegisteredApplicationsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadRegisteredApplications * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadRegisteredApplications * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadRegisteredApplications * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadRegisteredApplications * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadRegisteredApplications * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadRegisteredApplications * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadRegisteredApplications * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadRegisteredApplications * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadRegisteredApplications * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadRegisteredApplications * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadRegisteredApplications * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadRegisteredApplications * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadRegisteredApplications * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadRegisteredApplications * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadRegisteredApplications * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadRegisteredApplications * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadRegisteredApplications * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadRegisteredApplications * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadRegisteredApplications * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadRegisteredApplications * This);
        
        DECLSPEC_XFGVIRT(IGcadRegisteredApplications, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadRegisteredApplications * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadRegisteredApplication **pItem);
        
        DECLSPEC_XFGVIRT(IGcadRegisteredApplications, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadRegisteredApplications * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadRegisteredApplications, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadRegisteredApplications * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadRegisteredApplications, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadRegisteredApplications * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadRegisteredApplication **pRegApp);
        
        END_INTERFACE
    } IGcadRegisteredApplicationsVtbl;

    interface IGcadRegisteredApplications
    {
        CONST_VTBL struct IGcadRegisteredApplicationsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadRegisteredApplications_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadRegisteredApplications_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadRegisteredApplications_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadRegisteredApplications_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadRegisteredApplications_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadRegisteredApplications_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadRegisteredApplications_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadRegisteredApplications_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadRegisteredApplications_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadRegisteredApplications_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadRegisteredApplications_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadRegisteredApplications_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadRegisteredApplications_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadRegisteredApplications_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadRegisteredApplications_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadRegisteredApplications_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadRegisteredApplications_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadRegisteredApplications_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadRegisteredApplications_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadRegisteredApplications_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadRegisteredApplications_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadRegisteredApplications_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadRegisteredApplications_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadRegisteredApplications_Add(This,Name,pRegApp)	\
    ( (This)->lpVtbl -> Add(This,Name,pRegApp) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadRegisteredApplications_INTERFACE_DEFINED__ */


#ifndef __IGcadRegisteredApplication_INTERFACE_DEFINED__
#define __IGcadRegisteredApplication_INTERFACE_DEFINED__

/* interface IGcadRegisteredApplication */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadRegisteredApplication;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F0F9DD45-70ED-42C1-B4AC-562396361489")
    IGcadRegisteredApplication : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadRegisteredApplicationVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadRegisteredApplication * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadRegisteredApplication * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadRegisteredApplication * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadRegisteredApplication * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadRegisteredApplication * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadRegisteredApplication * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadRegisteredApplication * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadRegisteredApplication * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadRegisteredApplication * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadRegisteredApplication * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadRegisteredApplication * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadRegisteredApplication * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadRegisteredApplication * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadRegisteredApplication * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadRegisteredApplication * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadRegisteredApplication * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadRegisteredApplication * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadRegisteredApplication * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadRegisteredApplication * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadRegisteredApplication * This);
        
        DECLSPEC_XFGVIRT(IGcadRegisteredApplication, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadRegisteredApplication * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadRegisteredApplication, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadRegisteredApplication * This,
            /* [in] */ BSTR bstrName);
        
        END_INTERFACE
    } IGcadRegisteredApplicationVtbl;

    interface IGcadRegisteredApplication
    {
        CONST_VTBL struct IGcadRegisteredApplicationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadRegisteredApplication_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadRegisteredApplication_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadRegisteredApplication_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadRegisteredApplication_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadRegisteredApplication_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadRegisteredApplication_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadRegisteredApplication_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadRegisteredApplication_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadRegisteredApplication_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadRegisteredApplication_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadRegisteredApplication_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadRegisteredApplication_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadRegisteredApplication_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadRegisteredApplication_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadRegisteredApplication_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadRegisteredApplication_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadRegisteredApplication_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadRegisteredApplication_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadRegisteredApplication_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadRegisteredApplication_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadRegisteredApplication_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadRegisteredApplication_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadRegisteredApplication_INTERFACE_DEFINED__ */


#ifndef __IGcadTextStyles_INTERFACE_DEFINED__
#define __IGcadTextStyles_INTERFACE_DEFINED__

/* interface IGcadTextStyles */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadTextStyles;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F8425B37-BFCF-4290-8CA2-C718D3201829")
    IGcadTextStyles : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadTextStyle **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadTextStyle **pTextStyle) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadTextStylesVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadTextStyles * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadTextStyles * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadTextStyles * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadTextStyles * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadTextStyles * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadTextStyles * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadTextStyles * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadTextStyles * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadTextStyles * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadTextStyles * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadTextStyles * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadTextStyles * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadTextStyles * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadTextStyles * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadTextStyles * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadTextStyles * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadTextStyles * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadTextStyles * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadTextStyles * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadTextStyles * This);
        
        DECLSPEC_XFGVIRT(IGcadTextStyles, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadTextStyles * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadTextStyle **pItem);
        
        DECLSPEC_XFGVIRT(IGcadTextStyles, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadTextStyles * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadTextStyles, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadTextStyles * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadTextStyles, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadTextStyles * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadTextStyle **pTextStyle);
        
        END_INTERFACE
    } IGcadTextStylesVtbl;

    interface IGcadTextStyles
    {
        CONST_VTBL struct IGcadTextStylesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadTextStyles_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadTextStyles_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadTextStyles_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadTextStyles_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadTextStyles_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadTextStyles_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadTextStyles_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadTextStyles_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadTextStyles_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadTextStyles_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadTextStyles_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadTextStyles_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadTextStyles_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadTextStyles_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadTextStyles_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadTextStyles_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadTextStyles_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadTextStyles_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadTextStyles_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadTextStyles_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadTextStyles_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadTextStyles_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadTextStyles_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadTextStyles_Add(This,Name,pTextStyle)	\
    ( (This)->lpVtbl -> Add(This,Name,pTextStyle) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadTextStyles_INTERFACE_DEFINED__ */


#ifndef __IGcadTextStyle_INTERFACE_DEFINED__
#define __IGcadTextStyle_INTERFACE_DEFINED__

/* interface IGcadTextStyle */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadTextStyle;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("703FE959-9B8D-4A91-A69A-844150619DF3")
    IGcadTextStyle : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BigFontFile( 
            /* [retval][out] */ BSTR *fontFile) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BigFontFile( 
            /* [in] */ BSTR fontFile) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_fontFile( 
            /* [retval][out] */ BSTR *fontFile) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_fontFile( 
            /* [in] */ BSTR fontFile) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LastHeight( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LastHeight( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObliqueAngle( 
            /* [retval][out] */ GCAD_ANGLE *obliAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ObliqueAngle( 
            /* [in] */ GCAD_ANGLE obliAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextGenerationFlag( 
            /* [retval][out] */ GcTextGenerationFlag *textGenFlag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextGenerationFlag( 
            /* [in] */ GcTextGenerationFlag textGenFlag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Width( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFont( 
            /* [out] */ BSTR *TypeFace,
            /* [out] */ VARIANT_BOOL *Bold,
            /* [out] */ VARIANT_BOOL *Italic,
            /* [out] */ long *Charset,
            /* [out] */ long *PitchAndFamily) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetFont( 
            /* [in] */ BSTR TypeFace,
            /* [in] */ VARIANT_BOOL Bold,
            /* [in] */ VARIANT_BOOL Italic,
            /* [in] */ long Charset,
            /* [in] */ long PitchAndFamily) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadTextStyleVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadTextStyle * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadTextStyle * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadTextStyle * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadTextStyle * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadTextStyle * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadTextStyle * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadTextStyle * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadTextStyle * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadTextStyle * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadTextStyle * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadTextStyle * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadTextStyle * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadTextStyle * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadTextStyle * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadTextStyle * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadTextStyle * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadTextStyle * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadTextStyle * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadTextStyle * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadTextStyle * This);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, get_BigFontFile)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BigFontFile )( 
            IGcadTextStyle * This,
            /* [retval][out] */ BSTR *fontFile);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, put_BigFontFile)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BigFontFile )( 
            IGcadTextStyle * This,
            /* [in] */ BSTR fontFile);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, get_fontFile)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_fontFile )( 
            IGcadTextStyle * This,
            /* [retval][out] */ BSTR *fontFile);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, put_fontFile)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_fontFile )( 
            IGcadTextStyle * This,
            /* [in] */ BSTR fontFile);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadTextStyle * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadTextStyle * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, get_LastHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LastHeight )( 
            IGcadTextStyle * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, put_LastHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LastHeight )( 
            IGcadTextStyle * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadTextStyle * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, get_ObliqueAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObliqueAngle )( 
            IGcadTextStyle * This,
            /* [retval][out] */ GCAD_ANGLE *obliAngle);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, put_ObliqueAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ObliqueAngle )( 
            IGcadTextStyle * This,
            /* [in] */ GCAD_ANGLE obliAngle);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, get_TextGenerationFlag)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGenerationFlag )( 
            IGcadTextStyle * This,
            /* [retval][out] */ GcTextGenerationFlag *textGenFlag);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, put_TextGenerationFlag)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGenerationFlag )( 
            IGcadTextStyle * This,
            /* [in] */ GcTextGenerationFlag textGenFlag);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadTextStyle * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, put_Width)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( 
            IGcadTextStyle * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, GetFont)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFont )( 
            IGcadTextStyle * This,
            /* [out] */ BSTR *TypeFace,
            /* [out] */ VARIANT_BOOL *Bold,
            /* [out] */ VARIANT_BOOL *Italic,
            /* [out] */ long *Charset,
            /* [out] */ long *PitchAndFamily);
        
        DECLSPEC_XFGVIRT(IGcadTextStyle, SetFont)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetFont )( 
            IGcadTextStyle * This,
            /* [in] */ BSTR TypeFace,
            /* [in] */ VARIANT_BOOL Bold,
            /* [in] */ VARIANT_BOOL Italic,
            /* [in] */ long Charset,
            /* [in] */ long PitchAndFamily);
        
        END_INTERFACE
    } IGcadTextStyleVtbl;

    interface IGcadTextStyle
    {
        CONST_VTBL struct IGcadTextStyleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadTextStyle_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadTextStyle_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadTextStyle_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadTextStyle_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadTextStyle_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadTextStyle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadTextStyle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadTextStyle_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadTextStyle_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadTextStyle_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadTextStyle_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadTextStyle_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadTextStyle_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadTextStyle_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadTextStyle_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadTextStyle_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadTextStyle_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadTextStyle_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadTextStyle_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadTextStyle_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadTextStyle_get_BigFontFile(This,fontFile)	\
    ( (This)->lpVtbl -> get_BigFontFile(This,fontFile) ) 

#define IGcadTextStyle_put_BigFontFile(This,fontFile)	\
    ( (This)->lpVtbl -> put_BigFontFile(This,fontFile) ) 

#define IGcadTextStyle_get_fontFile(This,fontFile)	\
    ( (This)->lpVtbl -> get_fontFile(This,fontFile) ) 

#define IGcadTextStyle_put_fontFile(This,fontFile)	\
    ( (This)->lpVtbl -> put_fontFile(This,fontFile) ) 

#define IGcadTextStyle_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadTextStyle_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadTextStyle_get_LastHeight(This,Height)	\
    ( (This)->lpVtbl -> get_LastHeight(This,Height) ) 

#define IGcadTextStyle_put_LastHeight(This,Height)	\
    ( (This)->lpVtbl -> put_LastHeight(This,Height) ) 

#define IGcadTextStyle_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadTextStyle_get_ObliqueAngle(This,obliAngle)	\
    ( (This)->lpVtbl -> get_ObliqueAngle(This,obliAngle) ) 

#define IGcadTextStyle_put_ObliqueAngle(This,obliAngle)	\
    ( (This)->lpVtbl -> put_ObliqueAngle(This,obliAngle) ) 

#define IGcadTextStyle_get_TextGenerationFlag(This,textGenFlag)	\
    ( (This)->lpVtbl -> get_TextGenerationFlag(This,textGenFlag) ) 

#define IGcadTextStyle_put_TextGenerationFlag(This,textGenFlag)	\
    ( (This)->lpVtbl -> put_TextGenerationFlag(This,textGenFlag) ) 

#define IGcadTextStyle_get_Width(This,Width)	\
    ( (This)->lpVtbl -> get_Width(This,Width) ) 

#define IGcadTextStyle_put_Width(This,Width)	\
    ( (This)->lpVtbl -> put_Width(This,Width) ) 

#define IGcadTextStyle_GetFont(This,TypeFace,Bold,Italic,Charset,PitchAndFamily)	\
    ( (This)->lpVtbl -> GetFont(This,TypeFace,Bold,Italic,Charset,PitchAndFamily) ) 

#define IGcadTextStyle_SetFont(This,TypeFace,Bold,Italic,Charset,PitchAndFamily)	\
    ( (This)->lpVtbl -> SetFont(This,TypeFace,Bold,Italic,Charset,PitchAndFamily) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadTextStyle_INTERFACE_DEFINED__ */


#ifndef __IGcadUCSs_INTERFACE_DEFINED__
#define __IGcadUCSs_INTERFACE_DEFINED__

/* interface IGcadUCSs */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadUCSs;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("94DA139B-A285-4E3D-9E31-AA597FD909B0")
    IGcadUCSs : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadUCS **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ VARIANT Origin,
            /* [in] */ VARIANT XAxisPoint,
            /* [in] */ VARIANT YAxisPoint,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadUCS **pUCS) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadUCSsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadUCSs * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadUCSs * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadUCSs * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadUCSs * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadUCSs * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadUCSs * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadUCSs * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadUCSs * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadUCSs * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadUCSs * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadUCSs * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadUCSs * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadUCSs * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadUCSs * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadUCSs * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadUCSs * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadUCSs * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadUCSs * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadUCSs * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadUCSs * This);
        
        DECLSPEC_XFGVIRT(IGcadUCSs, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadUCSs * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadUCS **pItem);
        
        DECLSPEC_XFGVIRT(IGcadUCSs, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadUCSs * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadUCSs, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadUCSs * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadUCSs, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadUCSs * This,
            /* [in] */ VARIANT Origin,
            /* [in] */ VARIANT XAxisPoint,
            /* [in] */ VARIANT YAxisPoint,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadUCS **pUCS);
        
        END_INTERFACE
    } IGcadUCSsVtbl;

    interface IGcadUCSs
    {
        CONST_VTBL struct IGcadUCSsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadUCSs_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadUCSs_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadUCSs_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadUCSs_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadUCSs_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadUCSs_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadUCSs_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadUCSs_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadUCSs_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadUCSs_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadUCSs_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadUCSs_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadUCSs_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadUCSs_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadUCSs_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadUCSs_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadUCSs_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadUCSs_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadUCSs_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadUCSs_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadUCSs_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadUCSs_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadUCSs_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadUCSs_Add(This,Origin,XAxisPoint,YAxisPoint,Name,pUCS)	\
    ( (This)->lpVtbl -> Add(This,Origin,XAxisPoint,YAxisPoint,Name,pUCS) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadUCSs_INTERFACE_DEFINED__ */


#ifndef __IGcadUCS_INTERFACE_DEFINED__
#define __IGcadUCS_INTERFACE_DEFINED__

/* interface IGcadUCS */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadUCS;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("50B2A194-C469-4A57-B14A-BAFBA41A4039")
    IGcadUCS : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Origin( 
            /* [retval][out] */ VARIANT *Origin) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Origin( 
            /* [in] */ VARIANT Origin) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_XVector( 
            /* [retval][out] */ VARIANT *XVector) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_XVector( 
            /* [in] */ VARIANT XVector) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_YVector( 
            /* [retval][out] */ VARIANT *YVector) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_YVector( 
            /* [in] */ VARIANT YVector) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetUCSMatrix( 
            /* [retval][out] */ VARIANT *transMatrix) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadUCSVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadUCS * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadUCS * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadUCS * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadUCS * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadUCS * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadUCS * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadUCS * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadUCS * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadUCS * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadUCS * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadUCS * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadUCS * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadUCS * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadUCS * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadUCS * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadUCS * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadUCS * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadUCS * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadUCS * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadUCS * This);
        
        DECLSPEC_XFGVIRT(IGcadUCS, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadUCS * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadUCS, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadUCS * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadUCS, get_Origin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Origin )( 
            IGcadUCS * This,
            /* [retval][out] */ VARIANT *Origin);
        
        DECLSPEC_XFGVIRT(IGcadUCS, put_Origin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Origin )( 
            IGcadUCS * This,
            /* [in] */ VARIANT Origin);
        
        DECLSPEC_XFGVIRT(IGcadUCS, get_XVector)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XVector )( 
            IGcadUCS * This,
            /* [retval][out] */ VARIANT *XVector);
        
        DECLSPEC_XFGVIRT(IGcadUCS, put_XVector)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XVector )( 
            IGcadUCS * This,
            /* [in] */ VARIANT XVector);
        
        DECLSPEC_XFGVIRT(IGcadUCS, get_YVector)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_YVector )( 
            IGcadUCS * This,
            /* [retval][out] */ VARIANT *YVector);
        
        DECLSPEC_XFGVIRT(IGcadUCS, put_YVector)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_YVector )( 
            IGcadUCS * This,
            /* [in] */ VARIANT YVector);
        
        DECLSPEC_XFGVIRT(IGcadUCS, GetUCSMatrix)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetUCSMatrix )( 
            IGcadUCS * This,
            /* [retval][out] */ VARIANT *transMatrix);
        
        END_INTERFACE
    } IGcadUCSVtbl;

    interface IGcadUCS
    {
        CONST_VTBL struct IGcadUCSVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadUCS_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadUCS_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadUCS_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadUCS_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadUCS_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadUCS_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadUCS_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadUCS_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadUCS_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadUCS_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadUCS_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadUCS_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadUCS_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadUCS_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadUCS_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadUCS_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadUCS_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadUCS_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadUCS_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadUCS_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadUCS_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadUCS_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadUCS_get_Origin(This,Origin)	\
    ( (This)->lpVtbl -> get_Origin(This,Origin) ) 

#define IGcadUCS_put_Origin(This,Origin)	\
    ( (This)->lpVtbl -> put_Origin(This,Origin) ) 

#define IGcadUCS_get_XVector(This,XVector)	\
    ( (This)->lpVtbl -> get_XVector(This,XVector) ) 

#define IGcadUCS_put_XVector(This,XVector)	\
    ( (This)->lpVtbl -> put_XVector(This,XVector) ) 

#define IGcadUCS_get_YVector(This,YVector)	\
    ( (This)->lpVtbl -> get_YVector(This,YVector) ) 

#define IGcadUCS_put_YVector(This,YVector)	\
    ( (This)->lpVtbl -> put_YVector(This,YVector) ) 

#define IGcadUCS_GetUCSMatrix(This,transMatrix)	\
    ( (This)->lpVtbl -> GetUCSMatrix(This,transMatrix) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadUCS_INTERFACE_DEFINED__ */


#ifndef __IGcadViews_INTERFACE_DEFINED__
#define __IGcadViews_INTERFACE_DEFINED__

/* interface IGcadViews */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadViews;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9789FDA2-4DD1-44EA-8BC0-8B8B922EDE88")
    IGcadViews : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadView **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadView **pRegApp) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadViewsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadViews * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadViews * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadViews * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadViews * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadViews * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadViews * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadViews * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadViews * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadViews * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadViews * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadViews * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadViews * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadViews * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadViews * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadViews * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadViews * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadViews * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadViews * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadViews * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadViews * This);
        
        DECLSPEC_XFGVIRT(IGcadViews, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadViews * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadView **pItem);
        
        DECLSPEC_XFGVIRT(IGcadViews, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadViews * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadViews, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadViews * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadViews, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadViews * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadView **pRegApp);
        
        END_INTERFACE
    } IGcadViewsVtbl;

    interface IGcadViews
    {
        CONST_VTBL struct IGcadViewsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadViews_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadViews_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadViews_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadViews_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadViews_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadViews_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadViews_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadViews_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadViews_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadViews_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadViews_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadViews_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadViews_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadViews_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadViews_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadViews_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadViews_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadViews_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadViews_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadViews_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadViews_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadViews_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadViews_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadViews_Add(This,Name,pRegApp)	\
    ( (This)->lpVtbl -> Add(This,Name,pRegApp) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadViews_INTERFACE_DEFINED__ */


#ifndef __IGcadViewports_INTERFACE_DEFINED__
#define __IGcadViewports_INTERFACE_DEFINED__

/* interface IGcadViewports */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadViewports;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EF5599E0-9D92-4DA2-A8B0-B3A5728E019C")
    IGcadViewports : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadViewport **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadViewport **pRegApp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteConfiguration( 
            /* [in] */ BSTR Name) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadViewportsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadViewports * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadViewports * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadViewports * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadViewports * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadViewports * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadViewports * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadViewports * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadViewports * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadViewports * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadViewports * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadViewports * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadViewports * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadViewports * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadViewports * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadViewports * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadViewports * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadViewports * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadViewports * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadViewports * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadViewports * This);
        
        DECLSPEC_XFGVIRT(IGcadViewports, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadViewports * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadViewport **pItem);
        
        DECLSPEC_XFGVIRT(IGcadViewports, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadViewports * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadViewports, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadViewports * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadViewports, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadViewports * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadViewport **pRegApp);
        
        DECLSPEC_XFGVIRT(IGcadViewports, DeleteConfiguration)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteConfiguration )( 
            IGcadViewports * This,
            /* [in] */ BSTR Name);
        
        END_INTERFACE
    } IGcadViewportsVtbl;

    interface IGcadViewports
    {
        CONST_VTBL struct IGcadViewportsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadViewports_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadViewports_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadViewports_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadViewports_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadViewports_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadViewports_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadViewports_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadViewports_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadViewports_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadViewports_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadViewports_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadViewports_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadViewports_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadViewports_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadViewports_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadViewports_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadViewports_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadViewports_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadViewports_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadViewports_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadViewports_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadViewports_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadViewports_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadViewports_Add(This,Name,pRegApp)	\
    ( (This)->lpVtbl -> Add(This,Name,pRegApp) ) 

#define IGcadViewports_DeleteConfiguration(This,Name)	\
    ( (This)->lpVtbl -> DeleteConfiguration(This,Name) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadViewports_INTERFACE_DEFINED__ */


#ifndef __IGcadViewport_INTERFACE_DEFINED__
#define __IGcadViewport_INTERFACE_DEFINED__

/* interface IGcadViewport */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadViewport;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B2B6FB46-0162-4C09-9612-65371297D78F")
    IGcadViewport : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Center( 
            /* [retval][out] */ VARIANT *Center) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Center( 
            /* [in] */ VARIANT Center) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Width( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Target( 
            /* [retval][out] */ VARIANT *targetPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Target( 
            /* [in] */ VARIANT targetPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Direction( 
            /* [retval][out] */ VARIANT *dirVec) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Direction( 
            /* [in] */ VARIANT dirVec) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GridOn( 
            /* [retval][out] */ VARIANT_BOOL *bGridOn) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_GridOn( 
            /* [in] */ VARIANT_BOOL bGridOn) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_OrthoOn( 
            /* [retval][out] */ VARIANT_BOOL *bOrthoOn) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_OrthoOn( 
            /* [in] */ VARIANT_BOOL bOrthoOn) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SnapBasePoint( 
            /* [retval][out] */ VARIANT *lowLeft) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SnapBasePoint( 
            /* [in] */ VARIANT lowLeft) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SnapOn( 
            /* [retval][out] */ VARIANT_BOOL *bSnapOn) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SnapOn( 
            /* [in] */ VARIANT_BOOL bSnapOn) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SnapRotationAngle( 
            /* [retval][out] */ GCAD_ANGLE *Angle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SnapRotationAngle( 
            /* [in] */ GCAD_ANGLE Angle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UCSIconOn( 
            /* [retval][out] */ VARIANT_BOOL *bIconOn) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UCSIconOn( 
            /* [in] */ VARIANT_BOOL bIconOn) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UCSIconAtOrigin( 
            /* [retval][out] */ VARIANT_BOOL *bIconAtOrigin) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UCSIconAtOrigin( 
            /* [in] */ VARIANT_BOOL bIconAtOrigin) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LowerLeftCorner( 
            /* [retval][out] */ VARIANT *lowLeft) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UpperRightCorner( 
            /* [retval][out] */ VARIANT *UpperRight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Split( 
            /* [in] */ GcViewportSplitType NumWins) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridSpacing( 
            /* [out] */ double *XSpacing,
            /* [out] */ double *YSpacing) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridSpacing( 
            /* [in] */ double XSpacing,
            /* [in] */ double YSpacing) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSnapSpacing( 
            /* [out] */ double *XSpacing,
            /* [out] */ double *YSpacing) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSnapSpacing( 
            /* [in] */ double XSpacing,
            /* [in] */ double YSpacing) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetView( 
            /* [in] */ IGcadView *View) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArcSmoothness( 
            /* [retval][out] */ long *arcSmooth) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArcSmoothness( 
            /* [in] */ long arcSmooth) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadViewportVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadViewport * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadViewport * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadViewport * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadViewport * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadViewport * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadViewport * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadViewport * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadViewport * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadViewport * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadViewport * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadViewport * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadViewport * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadViewport * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadViewport * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadViewport * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadViewport * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadViewport * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadViewport * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadViewport * This);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_Center)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Center )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT *Center);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_Center)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Center )( 
            IGcadViewport * This,
            /* [in] */ VARIANT Center);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadViewport * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadViewport * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadViewport * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_Width)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( 
            IGcadViewport * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_Target)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Target )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT *targetPoint);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_Target)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Target )( 
            IGcadViewport * This,
            /* [in] */ VARIANT targetPoint);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_Direction)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Direction )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT *dirVec);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_Direction)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Direction )( 
            IGcadViewport * This,
            /* [in] */ VARIANT dirVec);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadViewport * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadViewport * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_GridOn)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GridOn )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bGridOn);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_GridOn)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GridOn )( 
            IGcadViewport * This,
            /* [in] */ VARIANT_BOOL bGridOn);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_OrthoOn)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OrthoOn )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bOrthoOn);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_OrthoOn)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_OrthoOn )( 
            IGcadViewport * This,
            /* [in] */ VARIANT_BOOL bOrthoOn);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_SnapBasePoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SnapBasePoint )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT *lowLeft);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_SnapBasePoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SnapBasePoint )( 
            IGcadViewport * This,
            /* [in] */ VARIANT lowLeft);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_SnapOn)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SnapOn )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bSnapOn);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_SnapOn)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SnapOn )( 
            IGcadViewport * This,
            /* [in] */ VARIANT_BOOL bSnapOn);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_SnapRotationAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SnapRotationAngle )( 
            IGcadViewport * This,
            /* [retval][out] */ GCAD_ANGLE *Angle);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_SnapRotationAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SnapRotationAngle )( 
            IGcadViewport * This,
            /* [in] */ GCAD_ANGLE Angle);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_UCSIconOn)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UCSIconOn )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bIconOn);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_UCSIconOn)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UCSIconOn )( 
            IGcadViewport * This,
            /* [in] */ VARIANT_BOOL bIconOn);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_UCSIconAtOrigin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UCSIconAtOrigin )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT_BOOL *bIconAtOrigin);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_UCSIconAtOrigin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UCSIconAtOrigin )( 
            IGcadViewport * This,
            /* [in] */ VARIANT_BOOL bIconAtOrigin);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_LowerLeftCorner)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LowerLeftCorner )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT *lowLeft);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_UpperRightCorner)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UpperRightCorner )( 
            IGcadViewport * This,
            /* [retval][out] */ VARIANT *UpperRight);
        
        DECLSPEC_XFGVIRT(IGcadViewport, Split)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Split )( 
            IGcadViewport * This,
            /* [in] */ GcViewportSplitType NumWins);
        
        DECLSPEC_XFGVIRT(IGcadViewport, GetGridSpacing)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridSpacing )( 
            IGcadViewport * This,
            /* [out] */ double *XSpacing,
            /* [out] */ double *YSpacing);
        
        DECLSPEC_XFGVIRT(IGcadViewport, SetGridSpacing)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridSpacing )( 
            IGcadViewport * This,
            /* [in] */ double XSpacing,
            /* [in] */ double YSpacing);
        
        DECLSPEC_XFGVIRT(IGcadViewport, GetSnapSpacing)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSnapSpacing )( 
            IGcadViewport * This,
            /* [out] */ double *XSpacing,
            /* [out] */ double *YSpacing);
        
        DECLSPEC_XFGVIRT(IGcadViewport, SetSnapSpacing)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSnapSpacing )( 
            IGcadViewport * This,
            /* [in] */ double XSpacing,
            /* [in] */ double YSpacing);
        
        DECLSPEC_XFGVIRT(IGcadViewport, SetView)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetView )( 
            IGcadViewport * This,
            /* [in] */ IGcadView *View);
        
        DECLSPEC_XFGVIRT(IGcadViewport, get_ArcSmoothness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArcSmoothness )( 
            IGcadViewport * This,
            /* [retval][out] */ long *arcSmooth);
        
        DECLSPEC_XFGVIRT(IGcadViewport, put_ArcSmoothness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArcSmoothness )( 
            IGcadViewport * This,
            /* [in] */ long arcSmooth);
        
        END_INTERFACE
    } IGcadViewportVtbl;

    interface IGcadViewport
    {
        CONST_VTBL struct IGcadViewportVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadViewport_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadViewport_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadViewport_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadViewport_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadViewport_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadViewport_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadViewport_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadViewport_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadViewport_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadViewport_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadViewport_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadViewport_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadViewport_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadViewport_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadViewport_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadViewport_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadViewport_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadViewport_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadViewport_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadViewport_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadViewport_get_Center(This,Center)	\
    ( (This)->lpVtbl -> get_Center(This,Center) ) 

#define IGcadViewport_put_Center(This,Center)	\
    ( (This)->lpVtbl -> put_Center(This,Center) ) 

#define IGcadViewport_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadViewport_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadViewport_get_Width(This,Width)	\
    ( (This)->lpVtbl -> get_Width(This,Width) ) 

#define IGcadViewport_put_Width(This,Width)	\
    ( (This)->lpVtbl -> put_Width(This,Width) ) 

#define IGcadViewport_get_Target(This,targetPoint)	\
    ( (This)->lpVtbl -> get_Target(This,targetPoint) ) 

#define IGcadViewport_put_Target(This,targetPoint)	\
    ( (This)->lpVtbl -> put_Target(This,targetPoint) ) 

#define IGcadViewport_get_Direction(This,dirVec)	\
    ( (This)->lpVtbl -> get_Direction(This,dirVec) ) 

#define IGcadViewport_put_Direction(This,dirVec)	\
    ( (This)->lpVtbl -> put_Direction(This,dirVec) ) 

#define IGcadViewport_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadViewport_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadViewport_get_GridOn(This,bGridOn)	\
    ( (This)->lpVtbl -> get_GridOn(This,bGridOn) ) 

#define IGcadViewport_put_GridOn(This,bGridOn)	\
    ( (This)->lpVtbl -> put_GridOn(This,bGridOn) ) 

#define IGcadViewport_get_OrthoOn(This,bOrthoOn)	\
    ( (This)->lpVtbl -> get_OrthoOn(This,bOrthoOn) ) 

#define IGcadViewport_put_OrthoOn(This,bOrthoOn)	\
    ( (This)->lpVtbl -> put_OrthoOn(This,bOrthoOn) ) 

#define IGcadViewport_get_SnapBasePoint(This,lowLeft)	\
    ( (This)->lpVtbl -> get_SnapBasePoint(This,lowLeft) ) 

#define IGcadViewport_put_SnapBasePoint(This,lowLeft)	\
    ( (This)->lpVtbl -> put_SnapBasePoint(This,lowLeft) ) 

#define IGcadViewport_get_SnapOn(This,bSnapOn)	\
    ( (This)->lpVtbl -> get_SnapOn(This,bSnapOn) ) 

#define IGcadViewport_put_SnapOn(This,bSnapOn)	\
    ( (This)->lpVtbl -> put_SnapOn(This,bSnapOn) ) 

#define IGcadViewport_get_SnapRotationAngle(This,Angle)	\
    ( (This)->lpVtbl -> get_SnapRotationAngle(This,Angle) ) 

#define IGcadViewport_put_SnapRotationAngle(This,Angle)	\
    ( (This)->lpVtbl -> put_SnapRotationAngle(This,Angle) ) 

#define IGcadViewport_get_UCSIconOn(This,bIconOn)	\
    ( (This)->lpVtbl -> get_UCSIconOn(This,bIconOn) ) 

#define IGcadViewport_put_UCSIconOn(This,bIconOn)	\
    ( (This)->lpVtbl -> put_UCSIconOn(This,bIconOn) ) 

#define IGcadViewport_get_UCSIconAtOrigin(This,bIconAtOrigin)	\
    ( (This)->lpVtbl -> get_UCSIconAtOrigin(This,bIconAtOrigin) ) 

#define IGcadViewport_put_UCSIconAtOrigin(This,bIconAtOrigin)	\
    ( (This)->lpVtbl -> put_UCSIconAtOrigin(This,bIconAtOrigin) ) 

#define IGcadViewport_get_LowerLeftCorner(This,lowLeft)	\
    ( (This)->lpVtbl -> get_LowerLeftCorner(This,lowLeft) ) 

#define IGcadViewport_get_UpperRightCorner(This,UpperRight)	\
    ( (This)->lpVtbl -> get_UpperRightCorner(This,UpperRight) ) 

#define IGcadViewport_Split(This,NumWins)	\
    ( (This)->lpVtbl -> Split(This,NumWins) ) 

#define IGcadViewport_GetGridSpacing(This,XSpacing,YSpacing)	\
    ( (This)->lpVtbl -> GetGridSpacing(This,XSpacing,YSpacing) ) 

#define IGcadViewport_SetGridSpacing(This,XSpacing,YSpacing)	\
    ( (This)->lpVtbl -> SetGridSpacing(This,XSpacing,YSpacing) ) 

#define IGcadViewport_GetSnapSpacing(This,XSpacing,YSpacing)	\
    ( (This)->lpVtbl -> GetSnapSpacing(This,XSpacing,YSpacing) ) 

#define IGcadViewport_SetSnapSpacing(This,XSpacing,YSpacing)	\
    ( (This)->lpVtbl -> SetSnapSpacing(This,XSpacing,YSpacing) ) 

#define IGcadViewport_SetView(This,View)	\
    ( (This)->lpVtbl -> SetView(This,View) ) 

#define IGcadViewport_get_ArcSmoothness(This,arcSmooth)	\
    ( (This)->lpVtbl -> get_ArcSmoothness(This,arcSmooth) ) 

#define IGcadViewport_put_ArcSmoothness(This,arcSmooth)	\
    ( (This)->lpVtbl -> put_ArcSmoothness(This,arcSmooth) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadViewport_INTERFACE_DEFINED__ */


#ifndef __IGcadLayouts_INTERFACE_DEFINED__
#define __IGcadLayouts_INTERFACE_DEFINED__

/* interface IGcadLayouts */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadLayouts;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3B4B6A63-85E6-463A-9F6F-D99D77C731E7")
    IGcadLayouts : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadLayout **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadLayout **pLayout) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadLayoutsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadLayouts * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadLayouts * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadLayouts * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadLayouts * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadLayouts * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadLayouts * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadLayouts * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadLayouts * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadLayouts * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadLayouts * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadLayouts * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadLayouts * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadLayouts * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadLayouts * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadLayouts * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadLayouts * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadLayouts * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadLayouts * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadLayouts * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadLayouts * This);
        
        DECLSPEC_XFGVIRT(IGcadLayouts, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadLayouts * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadLayout **pItem);
        
        DECLSPEC_XFGVIRT(IGcadLayouts, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadLayouts * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadLayouts, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadLayouts * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadLayouts, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadLayouts * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadLayout **pLayout);
        
        END_INTERFACE
    } IGcadLayoutsVtbl;

    interface IGcadLayouts
    {
        CONST_VTBL struct IGcadLayoutsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadLayouts_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadLayouts_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadLayouts_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadLayouts_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadLayouts_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadLayouts_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadLayouts_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadLayouts_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadLayouts_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadLayouts_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadLayouts_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadLayouts_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadLayouts_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadLayouts_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadLayouts_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadLayouts_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadLayouts_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadLayouts_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadLayouts_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadLayouts_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadLayouts_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadLayouts_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadLayouts_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadLayouts_Add(This,Name,pLayout)	\
    ( (This)->lpVtbl -> Add(This,Name,pLayout) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadLayouts_INTERFACE_DEFINED__ */


#ifndef __IGcadPlotConfigurations_INTERFACE_DEFINED__
#define __IGcadPlotConfigurations_INTERFACE_DEFINED__

/* interface IGcadPlotConfigurations */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadPlotConfigurations;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("02242489-515A-4BDD-AC0C-E125FD1BE28C")
    IGcadPlotConfigurations : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadPlotConfiguration **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [optional][in] */ VARIANT ModelType,
            /* [retval][out] */ IGcadPlotConfiguration **pPlotConfig) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPlotConfigurationsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPlotConfigurations * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPlotConfigurations * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPlotConfigurations * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPlotConfigurations * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPlotConfigurations * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPlotConfigurations * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPlotConfigurations * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPlotConfigurations * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPlotConfigurations * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPlotConfigurations * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPlotConfigurations * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPlotConfigurations * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPlotConfigurations * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPlotConfigurations * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPlotConfigurations * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPlotConfigurations * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPlotConfigurations * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPlotConfigurations * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPlotConfigurations * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPlotConfigurations * This);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfigurations, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadPlotConfigurations * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadPlotConfiguration **pItem);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfigurations, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadPlotConfigurations * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfigurations, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadPlotConfigurations * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadPlotConfigurations, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadPlotConfigurations * This,
            /* [in] */ BSTR Name,
            /* [optional][in] */ VARIANT ModelType,
            /* [retval][out] */ IGcadPlotConfiguration **pPlotConfig);
        
        END_INTERFACE
    } IGcadPlotConfigurationsVtbl;

    interface IGcadPlotConfigurations
    {
        CONST_VTBL struct IGcadPlotConfigurationsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPlotConfigurations_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPlotConfigurations_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPlotConfigurations_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPlotConfigurations_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPlotConfigurations_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPlotConfigurations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPlotConfigurations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPlotConfigurations_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPlotConfigurations_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPlotConfigurations_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPlotConfigurations_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPlotConfigurations_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPlotConfigurations_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPlotConfigurations_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPlotConfigurations_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPlotConfigurations_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPlotConfigurations_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPlotConfigurations_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPlotConfigurations_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPlotConfigurations_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPlotConfigurations_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadPlotConfigurations_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadPlotConfigurations_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadPlotConfigurations_Add(This,Name,ModelType,pPlotConfig)	\
    ( (This)->lpVtbl -> Add(This,Name,ModelType,pPlotConfig) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPlotConfigurations_INTERFACE_DEFINED__ */


#ifndef __IGcadDatabasePreferences_INTERFACE_DEFINED__
#define __IGcadDatabasePreferences_INTERFACE_DEFINED__

/* interface IGcadDatabasePreferences */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDatabasePreferences;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A4F5877D-D0B7-46C3-A69B-0AB7B36531AB")
    IGcadDatabasePreferences : public IDispatch
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ IDispatch **pAppObj) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SolidFill( 
            /* [retval][out] */ VARIANT_BOOL *Fill) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SolidFill( 
            /* [in] */ VARIANT_BOOL Fill) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_XRefEdit( 
            /* [retval][out] */ VARIANT_BOOL *Edit) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_XRefEdit( 
            /* [in] */ VARIANT_BOOL Edit) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_XRefLayerVisibility( 
            /* [retval][out] */ VARIANT_BOOL *XRefLayerVis) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_XRefLayerVisibility( 
            /* [in] */ VARIANT_BOOL XRefLayerVis) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_OLELaunch( 
            /* [retval][out] */ VARIANT_BOOL *Launch) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_OLELaunch( 
            /* [in] */ VARIANT_BOOL Launch) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowLongSymbolNames( 
            /* [retval][out] */ VARIANT_BOOL *LongNames) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowLongSymbolNames( 
            /* [in] */ VARIANT_BOOL LongNames) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObjectSortBySelection( 
            /* [retval][out] */ VARIANT_BOOL *Sort) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ObjectSortBySelection( 
            /* [in] */ VARIANT_BOOL Sort) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObjectSortBySnap( 
            /* [retval][out] */ VARIANT_BOOL *Sort) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ObjectSortBySnap( 
            /* [in] */ VARIANT_BOOL Sort) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObjectSortByRedraws( 
            /* [retval][out] */ VARIANT_BOOL *Sort) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ObjectSortByRedraws( 
            /* [in] */ VARIANT_BOOL Sort) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObjectSortByRegens( 
            /* [retval][out] */ VARIANT_BOOL *Sort) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ObjectSortByRegens( 
            /* [in] */ VARIANT_BOOL Sort) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObjectSortByPlotting( 
            /* [retval][out] */ VARIANT_BOOL *Sort) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ObjectSortByPlotting( 
            /* [in] */ VARIANT_BOOL Sort) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObjectSortByPSOutput( 
            /* [retval][out] */ VARIANT_BOOL *Sort) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ObjectSortByPSOutput( 
            /* [in] */ VARIANT_BOOL Sort) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ContourLinesPerSurface( 
            /* [in] */ long Path) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ContourLinesPerSurface( 
            /* [retval][out] */ long *Path) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DisplaySilhouette( 
            /* [in] */ VARIANT_BOOL Path) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DisplaySilhouette( 
            /* [retval][out] */ VARIANT_BOOL *Path) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MaxActiveViewports( 
            /* [in] */ long Path) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MaxActiveViewports( 
            /* [retval][out] */ long *Path) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RenderSmoothness( 
            /* [in] */ double Path) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RenderSmoothness( 
            /* [retval][out] */ double *Path) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SegmentPerPolyline( 
            /* [in] */ long Path) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SegmentPerPolyline( 
            /* [retval][out] */ long *Path) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextFrameDisplay( 
            /* [in] */ VARIANT_BOOL Path) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextFrameDisplay( 
            /* [retval][out] */ VARIANT_BOOL *Path) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LineWeight( 
            /* [in] */ GcLineWeight Path) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LineWeight( 
            /* [retval][out] */ GcLineWeight *Path) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LineWeightDisplay( 
            /* [in] */ VARIANT_BOOL Path) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LineWeightDisplay( 
            /* [retval][out] */ VARIANT_BOOL *Path) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDatabasePreferencesVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDatabasePreferences * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDatabasePreferences * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDatabasePreferences * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDatabasePreferences * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDatabasePreferences * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDatabasePreferences * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDatabasePreferences * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ IDispatch **pAppObj);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_SolidFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SolidFill )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Fill);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_SolidFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SolidFill )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Fill);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_XRefEdit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XRefEdit )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Edit);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_XRefEdit)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XRefEdit )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Edit);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_XRefLayerVisibility)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XRefLayerVisibility )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *XRefLayerVis);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_XRefLayerVisibility)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XRefLayerVisibility )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL XRefLayerVis);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_OLELaunch)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OLELaunch )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Launch);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_OLELaunch)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_OLELaunch )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Launch);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_AllowLongSymbolNames)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowLongSymbolNames )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *LongNames);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_AllowLongSymbolNames)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowLongSymbolNames )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL LongNames);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_ObjectSortBySelection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectSortBySelection )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_ObjectSortBySelection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ObjectSortBySelection )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_ObjectSortBySnap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectSortBySnap )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_ObjectSortBySnap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ObjectSortBySnap )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_ObjectSortByRedraws)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectSortByRedraws )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_ObjectSortByRedraws)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ObjectSortByRedraws )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_ObjectSortByRegens)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectSortByRegens )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_ObjectSortByRegens)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ObjectSortByRegens )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_ObjectSortByPlotting)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectSortByPlotting )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_ObjectSortByPlotting)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ObjectSortByPlotting )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_ObjectSortByPSOutput)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectSortByPSOutput )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_ObjectSortByPSOutput)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ObjectSortByPSOutput )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Sort);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_ContourLinesPerSurface)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContourLinesPerSurface )( 
            IGcadDatabasePreferences * This,
            /* [in] */ long Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_ContourLinesPerSurface)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContourLinesPerSurface )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ long *Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_DisplaySilhouette)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplaySilhouette )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_DisplaySilhouette)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplaySilhouette )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_MaxActiveViewports)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxActiveViewports )( 
            IGcadDatabasePreferences * This,
            /* [in] */ long Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_MaxActiveViewports)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxActiveViewports )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ long *Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_RenderSmoothness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RenderSmoothness )( 
            IGcadDatabasePreferences * This,
            /* [in] */ double Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_RenderSmoothness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RenderSmoothness )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ double *Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_SegmentPerPolyline)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SegmentPerPolyline )( 
            IGcadDatabasePreferences * This,
            /* [in] */ long Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_SegmentPerPolyline)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SegmentPerPolyline )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ long *Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_TextFrameDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFrameDisplay )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_TextFrameDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFrameDisplay )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_LineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LineWeight )( 
            IGcadDatabasePreferences * This,
            /* [in] */ GcLineWeight Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_LineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LineWeight )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ GcLineWeight *Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, put_LineWeightDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LineWeightDisplay )( 
            IGcadDatabasePreferences * This,
            /* [in] */ VARIANT_BOOL Path);
        
        DECLSPEC_XFGVIRT(IGcadDatabasePreferences, get_LineWeightDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LineWeightDisplay )( 
            IGcadDatabasePreferences * This,
            /* [retval][out] */ VARIANT_BOOL *Path);
        
        END_INTERFACE
    } IGcadDatabasePreferencesVtbl;

    interface IGcadDatabasePreferences
    {
        CONST_VTBL struct IGcadDatabasePreferencesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDatabasePreferences_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDatabasePreferences_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDatabasePreferences_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDatabasePreferences_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDatabasePreferences_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDatabasePreferences_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDatabasePreferences_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDatabasePreferences_get_Application(This,pAppObj)	\
    ( (This)->lpVtbl -> get_Application(This,pAppObj) ) 

#define IGcadDatabasePreferences_get_SolidFill(This,Fill)	\
    ( (This)->lpVtbl -> get_SolidFill(This,Fill) ) 

#define IGcadDatabasePreferences_put_SolidFill(This,Fill)	\
    ( (This)->lpVtbl -> put_SolidFill(This,Fill) ) 

#define IGcadDatabasePreferences_get_XRefEdit(This,Edit)	\
    ( (This)->lpVtbl -> get_XRefEdit(This,Edit) ) 

#define IGcadDatabasePreferences_put_XRefEdit(This,Edit)	\
    ( (This)->lpVtbl -> put_XRefEdit(This,Edit) ) 

#define IGcadDatabasePreferences_get_XRefLayerVisibility(This,XRefLayerVis)	\
    ( (This)->lpVtbl -> get_XRefLayerVisibility(This,XRefLayerVis) ) 

#define IGcadDatabasePreferences_put_XRefLayerVisibility(This,XRefLayerVis)	\
    ( (This)->lpVtbl -> put_XRefLayerVisibility(This,XRefLayerVis) ) 

#define IGcadDatabasePreferences_get_OLELaunch(This,Launch)	\
    ( (This)->lpVtbl -> get_OLELaunch(This,Launch) ) 

#define IGcadDatabasePreferences_put_OLELaunch(This,Launch)	\
    ( (This)->lpVtbl -> put_OLELaunch(This,Launch) ) 

#define IGcadDatabasePreferences_get_AllowLongSymbolNames(This,LongNames)	\
    ( (This)->lpVtbl -> get_AllowLongSymbolNames(This,LongNames) ) 

#define IGcadDatabasePreferences_put_AllowLongSymbolNames(This,LongNames)	\
    ( (This)->lpVtbl -> put_AllowLongSymbolNames(This,LongNames) ) 

#define IGcadDatabasePreferences_get_ObjectSortBySelection(This,Sort)	\
    ( (This)->lpVtbl -> get_ObjectSortBySelection(This,Sort) ) 

#define IGcadDatabasePreferences_put_ObjectSortBySelection(This,Sort)	\
    ( (This)->lpVtbl -> put_ObjectSortBySelection(This,Sort) ) 

#define IGcadDatabasePreferences_get_ObjectSortBySnap(This,Sort)	\
    ( (This)->lpVtbl -> get_ObjectSortBySnap(This,Sort) ) 

#define IGcadDatabasePreferences_put_ObjectSortBySnap(This,Sort)	\
    ( (This)->lpVtbl -> put_ObjectSortBySnap(This,Sort) ) 

#define IGcadDatabasePreferences_get_ObjectSortByRedraws(This,Sort)	\
    ( (This)->lpVtbl -> get_ObjectSortByRedraws(This,Sort) ) 

#define IGcadDatabasePreferences_put_ObjectSortByRedraws(This,Sort)	\
    ( (This)->lpVtbl -> put_ObjectSortByRedraws(This,Sort) ) 

#define IGcadDatabasePreferences_get_ObjectSortByRegens(This,Sort)	\
    ( (This)->lpVtbl -> get_ObjectSortByRegens(This,Sort) ) 

#define IGcadDatabasePreferences_put_ObjectSortByRegens(This,Sort)	\
    ( (This)->lpVtbl -> put_ObjectSortByRegens(This,Sort) ) 

#define IGcadDatabasePreferences_get_ObjectSortByPlotting(This,Sort)	\
    ( (This)->lpVtbl -> get_ObjectSortByPlotting(This,Sort) ) 

#define IGcadDatabasePreferences_put_ObjectSortByPlotting(This,Sort)	\
    ( (This)->lpVtbl -> put_ObjectSortByPlotting(This,Sort) ) 

#define IGcadDatabasePreferences_get_ObjectSortByPSOutput(This,Sort)	\
    ( (This)->lpVtbl -> get_ObjectSortByPSOutput(This,Sort) ) 

#define IGcadDatabasePreferences_put_ObjectSortByPSOutput(This,Sort)	\
    ( (This)->lpVtbl -> put_ObjectSortByPSOutput(This,Sort) ) 

#define IGcadDatabasePreferences_put_ContourLinesPerSurface(This,Path)	\
    ( (This)->lpVtbl -> put_ContourLinesPerSurface(This,Path) ) 

#define IGcadDatabasePreferences_get_ContourLinesPerSurface(This,Path)	\
    ( (This)->lpVtbl -> get_ContourLinesPerSurface(This,Path) ) 

#define IGcadDatabasePreferences_put_DisplaySilhouette(This,Path)	\
    ( (This)->lpVtbl -> put_DisplaySilhouette(This,Path) ) 

#define IGcadDatabasePreferences_get_DisplaySilhouette(This,Path)	\
    ( (This)->lpVtbl -> get_DisplaySilhouette(This,Path) ) 

#define IGcadDatabasePreferences_put_MaxActiveViewports(This,Path)	\
    ( (This)->lpVtbl -> put_MaxActiveViewports(This,Path) ) 

#define IGcadDatabasePreferences_get_MaxActiveViewports(This,Path)	\
    ( (This)->lpVtbl -> get_MaxActiveViewports(This,Path) ) 

#define IGcadDatabasePreferences_put_RenderSmoothness(This,Path)	\
    ( (This)->lpVtbl -> put_RenderSmoothness(This,Path) ) 

#define IGcadDatabasePreferences_get_RenderSmoothness(This,Path)	\
    ( (This)->lpVtbl -> get_RenderSmoothness(This,Path) ) 

#define IGcadDatabasePreferences_put_SegmentPerPolyline(This,Path)	\
    ( (This)->lpVtbl -> put_SegmentPerPolyline(This,Path) ) 

#define IGcadDatabasePreferences_get_SegmentPerPolyline(This,Path)	\
    ( (This)->lpVtbl -> get_SegmentPerPolyline(This,Path) ) 

#define IGcadDatabasePreferences_put_TextFrameDisplay(This,Path)	\
    ( (This)->lpVtbl -> put_TextFrameDisplay(This,Path) ) 

#define IGcadDatabasePreferences_get_TextFrameDisplay(This,Path)	\
    ( (This)->lpVtbl -> get_TextFrameDisplay(This,Path) ) 

#define IGcadDatabasePreferences_put_LineWeight(This,Path)	\
    ( (This)->lpVtbl -> put_LineWeight(This,Path) ) 

#define IGcadDatabasePreferences_get_LineWeight(This,Path)	\
    ( (This)->lpVtbl -> get_LineWeight(This,Path) ) 

#define IGcadDatabasePreferences_put_LineWeightDisplay(This,Path)	\
    ( (This)->lpVtbl -> put_LineWeightDisplay(This,Path) ) 

#define IGcadDatabasePreferences_get_LineWeightDisplay(This,Path)	\
    ( (This)->lpVtbl -> get_LineWeightDisplay(This,Path) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadDatabasePreferences_INTERFACE_DEFINED__ */


#ifndef __IGcadSummaryInfo_INTERFACE_DEFINED__
#define __IGcadSummaryInfo_INTERFACE_DEFINED__

/* interface IGcadSummaryInfo */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadSummaryInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A40DB73E-ED88-4AA8-8886-5CC3F2E63868")
    IGcadSummaryInfo : public IDispatch
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Author( 
            /* [retval][out] */ BSTR *pAuthor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Author( 
            /* [in] */ BSTR pAuthor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Comments( 
            /* [retval][out] */ BSTR *pComments) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Comments( 
            /* [in] */ BSTR pComments) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HyperlinkBase( 
            /* [retval][out] */ BSTR *pHyperlinkBase) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HyperlinkBase( 
            /* [in] */ BSTR pHyperlinkBase) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Keywords( 
            /* [retval][out] */ BSTR *pKeywords) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Keywords( 
            /* [in] */ BSTR pKeywords) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LastSavedBy( 
            /* [retval][out] */ BSTR *pLastSavedBy) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LastSavedBy( 
            /* [in] */ BSTR pLastSavedBy) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RevisionNumber( 
            /* [retval][out] */ BSTR *pRevisionNumber) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RevisionNumber( 
            /* [in] */ BSTR pRevisionNumber) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Subject( 
            /* [retval][out] */ BSTR *pSubject) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Subject( 
            /* [in] */ BSTR pSubject) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Title( 
            /* [retval][out] */ BSTR *pTitle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Title( 
            /* [in] */ BSTR pTitle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NumCustomInfo( 
            /* [retval][out] */ int *Index) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCustomByIndex( 
            /* [in] */ int Index,
            /* [out] */ BSTR *pKey,
            /* [out] */ BSTR *pValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCustomByKey( 
            /* [in] */ BSTR key,
            /* [out] */ BSTR *pValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCustomByIndex( 
            /* [in] */ int Index,
            /* [in] */ BSTR key,
            /* [in] */ BSTR Value) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCustomByKey( 
            /* [in] */ BSTR key,
            /* [in] */ BSTR Value) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCustomInfo( 
            /* [in] */ BSTR key,
            /* [in] */ BSTR Value) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveCustomByIndex( 
            /* [in] */ int Index) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveCustomByKey( 
            /* [in] */ BSTR key) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSummaryInfoVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSummaryInfo * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSummaryInfo * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSummaryInfo * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSummaryInfo * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSummaryInfo * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSummaryInfo * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSummaryInfo * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, get_Author)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Author )( 
            IGcadSummaryInfo * This,
            /* [retval][out] */ BSTR *pAuthor);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, put_Author)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Author )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR pAuthor);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, get_Comments)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Comments )( 
            IGcadSummaryInfo * This,
            /* [retval][out] */ BSTR *pComments);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, put_Comments)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Comments )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR pComments);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, get_HyperlinkBase)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HyperlinkBase )( 
            IGcadSummaryInfo * This,
            /* [retval][out] */ BSTR *pHyperlinkBase);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, put_HyperlinkBase)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HyperlinkBase )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR pHyperlinkBase);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, get_Keywords)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Keywords )( 
            IGcadSummaryInfo * This,
            /* [retval][out] */ BSTR *pKeywords);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, put_Keywords)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Keywords )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR pKeywords);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, get_LastSavedBy)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LastSavedBy )( 
            IGcadSummaryInfo * This,
            /* [retval][out] */ BSTR *pLastSavedBy);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, put_LastSavedBy)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LastSavedBy )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR pLastSavedBy);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, get_RevisionNumber)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RevisionNumber )( 
            IGcadSummaryInfo * This,
            /* [retval][out] */ BSTR *pRevisionNumber);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, put_RevisionNumber)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RevisionNumber )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR pRevisionNumber);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, get_Subject)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Subject )( 
            IGcadSummaryInfo * This,
            /* [retval][out] */ BSTR *pSubject);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, put_Subject)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Subject )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR pSubject);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, get_Title)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Title )( 
            IGcadSummaryInfo * This,
            /* [retval][out] */ BSTR *pTitle);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, put_Title)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Title )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR pTitle);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, NumCustomInfo)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NumCustomInfo )( 
            IGcadSummaryInfo * This,
            /* [retval][out] */ int *Index);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, GetCustomByIndex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCustomByIndex )( 
            IGcadSummaryInfo * This,
            /* [in] */ int Index,
            /* [out] */ BSTR *pKey,
            /* [out] */ BSTR *pValue);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, GetCustomByKey)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCustomByKey )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR key,
            /* [out] */ BSTR *pValue);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, SetCustomByIndex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCustomByIndex )( 
            IGcadSummaryInfo * This,
            /* [in] */ int Index,
            /* [in] */ BSTR key,
            /* [in] */ BSTR Value);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, SetCustomByKey)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCustomByKey )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR key,
            /* [in] */ BSTR Value);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, AddCustomInfo)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCustomInfo )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR key,
            /* [in] */ BSTR Value);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, RemoveCustomByIndex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveCustomByIndex )( 
            IGcadSummaryInfo * This,
            /* [in] */ int Index);
        
        DECLSPEC_XFGVIRT(IGcadSummaryInfo, RemoveCustomByKey)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveCustomByKey )( 
            IGcadSummaryInfo * This,
            /* [in] */ BSTR key);
        
        END_INTERFACE
    } IGcadSummaryInfoVtbl;

    interface IGcadSummaryInfo
    {
        CONST_VTBL struct IGcadSummaryInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSummaryInfo_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSummaryInfo_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSummaryInfo_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSummaryInfo_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSummaryInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSummaryInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSummaryInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSummaryInfo_get_Author(This,pAuthor)	\
    ( (This)->lpVtbl -> get_Author(This,pAuthor) ) 

#define IGcadSummaryInfo_put_Author(This,pAuthor)	\
    ( (This)->lpVtbl -> put_Author(This,pAuthor) ) 

#define IGcadSummaryInfo_get_Comments(This,pComments)	\
    ( (This)->lpVtbl -> get_Comments(This,pComments) ) 

#define IGcadSummaryInfo_put_Comments(This,pComments)	\
    ( (This)->lpVtbl -> put_Comments(This,pComments) ) 

#define IGcadSummaryInfo_get_HyperlinkBase(This,pHyperlinkBase)	\
    ( (This)->lpVtbl -> get_HyperlinkBase(This,pHyperlinkBase) ) 

#define IGcadSummaryInfo_put_HyperlinkBase(This,pHyperlinkBase)	\
    ( (This)->lpVtbl -> put_HyperlinkBase(This,pHyperlinkBase) ) 

#define IGcadSummaryInfo_get_Keywords(This,pKeywords)	\
    ( (This)->lpVtbl -> get_Keywords(This,pKeywords) ) 

#define IGcadSummaryInfo_put_Keywords(This,pKeywords)	\
    ( (This)->lpVtbl -> put_Keywords(This,pKeywords) ) 

#define IGcadSummaryInfo_get_LastSavedBy(This,pLastSavedBy)	\
    ( (This)->lpVtbl -> get_LastSavedBy(This,pLastSavedBy) ) 

#define IGcadSummaryInfo_put_LastSavedBy(This,pLastSavedBy)	\
    ( (This)->lpVtbl -> put_LastSavedBy(This,pLastSavedBy) ) 

#define IGcadSummaryInfo_get_RevisionNumber(This,pRevisionNumber)	\
    ( (This)->lpVtbl -> get_RevisionNumber(This,pRevisionNumber) ) 

#define IGcadSummaryInfo_put_RevisionNumber(This,pRevisionNumber)	\
    ( (This)->lpVtbl -> put_RevisionNumber(This,pRevisionNumber) ) 

#define IGcadSummaryInfo_get_Subject(This,pSubject)	\
    ( (This)->lpVtbl -> get_Subject(This,pSubject) ) 

#define IGcadSummaryInfo_put_Subject(This,pSubject)	\
    ( (This)->lpVtbl -> put_Subject(This,pSubject) ) 

#define IGcadSummaryInfo_get_Title(This,pTitle)	\
    ( (This)->lpVtbl -> get_Title(This,pTitle) ) 

#define IGcadSummaryInfo_put_Title(This,pTitle)	\
    ( (This)->lpVtbl -> put_Title(This,pTitle) ) 

#define IGcadSummaryInfo_NumCustomInfo(This,Index)	\
    ( (This)->lpVtbl -> NumCustomInfo(This,Index) ) 

#define IGcadSummaryInfo_GetCustomByIndex(This,Index,pKey,pValue)	\
    ( (This)->lpVtbl -> GetCustomByIndex(This,Index,pKey,pValue) ) 

#define IGcadSummaryInfo_GetCustomByKey(This,key,pValue)	\
    ( (This)->lpVtbl -> GetCustomByKey(This,key,pValue) ) 

#define IGcadSummaryInfo_SetCustomByIndex(This,Index,key,Value)	\
    ( (This)->lpVtbl -> SetCustomByIndex(This,Index,key,Value) ) 

#define IGcadSummaryInfo_SetCustomByKey(This,key,Value)	\
    ( (This)->lpVtbl -> SetCustomByKey(This,key,Value) ) 

#define IGcadSummaryInfo_AddCustomInfo(This,key,Value)	\
    ( (This)->lpVtbl -> AddCustomInfo(This,key,Value) ) 

#define IGcadSummaryInfo_RemoveCustomByIndex(This,Index)	\
    ( (This)->lpVtbl -> RemoveCustomByIndex(This,Index) ) 

#define IGcadSummaryInfo_RemoveCustomByKey(This,key)	\
    ( (This)->lpVtbl -> RemoveCustomByKey(This,key) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSummaryInfo_INTERFACE_DEFINED__ */


#ifndef __IGcadSectionManager_INTERFACE_DEFINED__
#define __IGcadSectionManager_INTERFACE_DEFINED__

/* interface IGcadSectionManager */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadSectionManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0340058F-D94E-429D-8199-A4ECFF677AC1")
    IGcadSectionManager : public IGcadObject
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadSection **pSection) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetLiveSection( 
            /* [retval][out] */ IGcadSection **pSection) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetUniqueSectionName( 
            /* [in] */ BSTR pBaseName,
            /* [retval][out] */ BSTR *ppUniqueName) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSectionManagerVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSectionManager * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSectionManager * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSectionManager * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSectionManager * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSectionManager * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSectionManager * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSectionManager * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadSectionManager * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSectionManager * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadSectionManager * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadSectionManager * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadSectionManager * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadSectionManager * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadSectionManager * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadSectionManager * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadSectionManager * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadSectionManager * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadSectionManager * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadSectionManager * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadSectionManager * This);
        
        DECLSPEC_XFGVIRT(IGcadSectionManager, Item)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadSectionManager * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadSection **pSection);
        
        DECLSPEC_XFGVIRT(IGcadSectionManager, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadSectionManager * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionManager, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadSectionManager * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionManager, GetLiveSection)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetLiveSection )( 
            IGcadSectionManager * This,
            /* [retval][out] */ IGcadSection **pSection);
        
        DECLSPEC_XFGVIRT(IGcadSectionManager, GetUniqueSectionName)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetUniqueSectionName )( 
            IGcadSectionManager * This,
            /* [in] */ BSTR pBaseName,
            /* [retval][out] */ BSTR *ppUniqueName);
        
        END_INTERFACE
    } IGcadSectionManagerVtbl;

    interface IGcadSectionManager
    {
        CONST_VTBL struct IGcadSectionManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSectionManager_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSectionManager_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSectionManager_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSectionManager_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSectionManager_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSectionManager_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSectionManager_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSectionManager_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadSectionManager_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSectionManager_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadSectionManager_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadSectionManager_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadSectionManager_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadSectionManager_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadSectionManager_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadSectionManager_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadSectionManager_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadSectionManager_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadSectionManager_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadSectionManager_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadSectionManager_Item(This,Index,pSection)	\
    ( (This)->lpVtbl -> Item(This,Index,pSection) ) 

#define IGcadSectionManager_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadSectionManager_get_Count(This,pVal)	\
    ( (This)->lpVtbl -> get_Count(This,pVal) ) 

#define IGcadSectionManager_GetLiveSection(This,pSection)	\
    ( (This)->lpVtbl -> GetLiveSection(This,pSection) ) 

#define IGcadSectionManager_GetUniqueSectionName(This,pBaseName,ppUniqueName)	\
    ( (This)->lpVtbl -> GetUniqueSectionName(This,pBaseName,ppUniqueName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSectionManager_INTERFACE_DEFINED__ */


#ifndef __IGcadMaterials_INTERFACE_DEFINED__
#define __IGcadMaterials_INTERFACE_DEFINED__

/* interface IGcadMaterials */
/* [unique][oleautomation][dual][uuid][object] */ 


EXTERN_C const IID IID_IGcadMaterials;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C42C4E52-02C7-441C-B0BA-16771B542EA5")
    IGcadMaterials : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadMaterial **pItem) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [hidden][restricted][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadMaterial **pDimStyle) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadMaterialsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadMaterials * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadMaterials * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadMaterials * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadMaterials * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadMaterials * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadMaterials * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadMaterials * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadMaterials * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadMaterials * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadMaterials * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadMaterials * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadMaterials * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadMaterials * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadMaterials * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadMaterials * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadMaterials * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadMaterials * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadMaterials * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadMaterials * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadMaterials * This);
        
        DECLSPEC_XFGVIRT(IGcadMaterials, Item)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            IGcadMaterials * This,
            /* [in] */ VARIANT Index,
            /* [retval][out] */ IGcadMaterial **pItem);
        
        DECLSPEC_XFGVIRT(IGcadMaterials, get_Count)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGcadMaterials * This,
            /* [retval][out] */ long *pCount);
        
        DECLSPEC_XFGVIRT(IGcadMaterials, get__NewEnum)
        /* [hidden][restricted][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IGcadMaterials * This,
            /* [retval][out] */ IUnknown **pVal);
        
        DECLSPEC_XFGVIRT(IGcadMaterials, Add)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IGcadMaterials * This,
            /* [in] */ BSTR Name,
            /* [retval][out] */ IGcadMaterial **pDimStyle);
        
        END_INTERFACE
    } IGcadMaterialsVtbl;

    interface IGcadMaterials
    {
        CONST_VTBL struct IGcadMaterialsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadMaterials_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadMaterials_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadMaterials_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadMaterials_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadMaterials_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadMaterials_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadMaterials_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadMaterials_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadMaterials_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadMaterials_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadMaterials_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadMaterials_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadMaterials_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadMaterials_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadMaterials_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadMaterials_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadMaterials_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadMaterials_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadMaterials_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadMaterials_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadMaterials_Item(This,Index,pItem)	\
    ( (This)->lpVtbl -> Item(This,Index,pItem) ) 

#define IGcadMaterials_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define IGcadMaterials_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IGcadMaterials_Add(This,Name,pDimStyle)	\
    ( (This)->lpVtbl -> Add(This,Name,pDimStyle) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadMaterials_INTERFACE_DEFINED__ */


#ifndef __IGcadMaterial_INTERFACE_DEFINED__
#define __IGcadMaterial_INTERFACE_DEFINED__

/* interface IGcadMaterial */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadMaterial;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A7F84FAB-56C7-4437-9178-04441F062A4A")
    IGcadMaterial : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *bstrDes) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Description( 
            /* [in] */ BSTR bstrDes) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrName) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadMaterialVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadMaterial * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadMaterial * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadMaterial * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadMaterial * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadMaterial * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadMaterial * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadMaterial * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadMaterial * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadMaterial * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadMaterial * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadMaterial * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadMaterial * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadMaterial * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadMaterial * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadMaterial * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadMaterial * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadMaterial * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadMaterial * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadMaterial * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadMaterial * This);
        
        DECLSPEC_XFGVIRT(IGcadMaterial, get_Description)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IGcadMaterial * This,
            /* [retval][out] */ BSTR *bstrDes);
        
        DECLSPEC_XFGVIRT(IGcadMaterial, put_Description)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
            IGcadMaterial * This,
            /* [in] */ BSTR bstrDes);
        
        DECLSPEC_XFGVIRT(IGcadMaterial, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadMaterial * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadMaterial, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadMaterial * This,
            /* [in] */ BSTR bstrName);
        
        END_INTERFACE
    } IGcadMaterialVtbl;

    interface IGcadMaterial
    {
        CONST_VTBL struct IGcadMaterialVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadMaterial_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadMaterial_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadMaterial_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadMaterial_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadMaterial_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadMaterial_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadMaterial_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadMaterial_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadMaterial_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadMaterial_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadMaterial_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadMaterial_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadMaterial_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadMaterial_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadMaterial_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadMaterial_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadMaterial_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadMaterial_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadMaterial_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadMaterial_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadMaterial_get_Description(This,bstrDes)	\
    ( (This)->lpVtbl -> get_Description(This,bstrDes) ) 

#define IGcadMaterial_put_Description(This,bstrDes)	\
    ( (This)->lpVtbl -> put_Description(This,bstrDes) ) 

#define IGcadMaterial_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadMaterial_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadMaterial_INTERFACE_DEFINED__ */


#ifndef __IGcadSectionTypeSettings2_INTERFACE_DEFINED__
#define __IGcadSectionTypeSettings2_INTERFACE_DEFINED__

/* interface IGcadSectionTypeSettings2 */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadSectionTypeSettings2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0EA54F91-DD83-456C-AC52-81BE649CAD95")
    IGcadSectionTypeSettings2 : public IGcadSectionTypeSettings
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntersectionBoundaryVisible( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntersectionBoundaryVisible( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSectionTypeSettings2Vtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSectionTypeSettings2 * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSectionTypeSettings2 * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSectionTypeSettings2 * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSectionTypeSettings2 * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_GenerationOptions)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GenerationOptions )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GcSectionGeneration *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_GenerationOptions)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GenerationOptions )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GcSectionGeneration pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_SourceObjects)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SourceObjects )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_SourceObjects)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SourceObjects )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_DestinationBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DestinationBlock )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_DestinationBlock)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DestinationBlock )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_DestinationFile)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DestinationFile )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_DestinationFile)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DestinationFile )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryColor )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryColor )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryLayer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryLayer )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryLayer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryLayer )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryLinetype )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryLinetype )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryLinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryLinetypeScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryLinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryLinetypeScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryPlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryPlotStyleName )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryPlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryPlotStyleName )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryLineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryLineweight )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryLineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryLineweight )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionBoundaryDivisionLines)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryDivisionLines )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionBoundaryDivisionLines)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryDivisionLines )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillVisible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillVisible )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillVisible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillVisible )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillHatchPatternType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillHatchPatternType )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GcPatternType *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillHatchPatternType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillHatchPatternType )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GcPatternType pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillHatchPatternName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillHatchPatternName )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillHatchPatternName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillHatchPatternName )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillHatchAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillHatchAngle )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_ANGLE *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillHatchAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillHatchAngle )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_ANGLE pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillHatchScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillHatchScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_NOUNITS *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillHatchScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillHatchScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_NOUNITS pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillHatchSpacing)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillHatchSpacing )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillHatchSpacing)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillHatchSpacing )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ double pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillColor )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillColor )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillLayer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillLayer )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillLayer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillLayer )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillLinetype )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillLinetype )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillLinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillLinetypeScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillLinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillLinetypeScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillPlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillPlotStyleName )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillPlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillPlotStyleName )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillLineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillLineweight )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillLineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillLineweight )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_IntersectionFillFaceTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionFillFaceTransparency )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_IntersectionFillFaceTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionFillFaceTransparency )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ long pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesVisible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesVisible )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesVisible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesVisible )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesHiddenLine)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesHiddenLine )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesHiddenLine)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesHiddenLine )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesColor )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesColor )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesLayer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesLayer )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesLayer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesLayer )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesLinetype )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesLinetype )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesLinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesLinetypeScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesLinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesLinetypeScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesPlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesPlotStyleName )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesPlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesPlotStyleName )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_BackgroundLinesLineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundLinesLineweight )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_BackgroundLinesLineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundLinesLineweight )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesVisible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesVisible )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesVisible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesVisible )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesHiddenLine)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesHiddenLine )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesHiddenLine)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesHiddenLine )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesColor )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesColor )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesLayer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesLayer )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesLayer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesLayer )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesLinetype )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesLinetype )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesLinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesLinetypeScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesLinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesLinetypeScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesPlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesPlotStyleName )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesPlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesPlotStyleName )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesLineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesLineweight )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesLineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesLineweight )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesFaceTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesFaceTransparency )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesFaceTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesFaceTransparency )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ long pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_ForegroundLinesEdgeTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ForegroundLinesEdgeTransparency )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_ForegroundLinesEdgeTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ForegroundLinesEdgeTransparency )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ long pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesVisible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesVisible )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesVisible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesVisible )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesColor )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesColor )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesLayer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesLayer )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesLayer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesLayer )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesLinetype )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesLinetype )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesLinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesLinetypeScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesLinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesLinetypeScale )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesPlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesPlotStyleName )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesPlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesPlotStyleName )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, get_CurveTangencyLinesLineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurveTangencyLinesLineweight )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings, put_CurveTangencyLinesLineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurveTangencyLinesLineweight )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings2, get_IntersectionBoundaryVisible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntersectionBoundaryVisible )( 
            IGcadSectionTypeSettings2 * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSectionTypeSettings2, put_IntersectionBoundaryVisible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntersectionBoundaryVisible )( 
            IGcadSectionTypeSettings2 * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        END_INTERFACE
    } IGcadSectionTypeSettings2Vtbl;

    interface IGcadSectionTypeSettings2
    {
        CONST_VTBL struct IGcadSectionTypeSettings2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSectionTypeSettings2_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSectionTypeSettings2_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSectionTypeSettings2_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSectionTypeSettings2_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSectionTypeSettings2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSectionTypeSettings2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSectionTypeSettings2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSectionTypeSettings2_get_GenerationOptions(This,pVal)	\
    ( (This)->lpVtbl -> get_GenerationOptions(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_GenerationOptions(This,pVal)	\
    ( (This)->lpVtbl -> put_GenerationOptions(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_SourceObjects(This,pVal)	\
    ( (This)->lpVtbl -> get_SourceObjects(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_SourceObjects(This,pVal)	\
    ( (This)->lpVtbl -> put_SourceObjects(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_DestinationBlock(This,pVal)	\
    ( (This)->lpVtbl -> get_DestinationBlock(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_DestinationBlock(This,pVal)	\
    ( (This)->lpVtbl -> put_DestinationBlock(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_DestinationFile(This,pVal)	\
    ( (This)->lpVtbl -> get_DestinationFile(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_DestinationFile(This,pVal)	\
    ( (This)->lpVtbl -> put_DestinationFile(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_IntersectionBoundaryColor(This,pColor)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryColor(This,pColor) ) 

#define IGcadSectionTypeSettings2_put_IntersectionBoundaryColor(This,pColor)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryColor(This,pColor) ) 

#define IGcadSectionTypeSettings2_get_IntersectionBoundaryLayer(This,Layer)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryLayer(This,Layer) ) 

#define IGcadSectionTypeSettings2_put_IntersectionBoundaryLayer(This,Layer)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryLayer(This,Layer) ) 

#define IGcadSectionTypeSettings2_get_IntersectionBoundaryLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings2_put_IntersectionBoundaryLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings2_get_IntersectionBoundaryLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings2_put_IntersectionBoundaryLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings2_get_IntersectionBoundaryPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings2_put_IntersectionBoundaryPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings2_get_IntersectionBoundaryLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings2_put_IntersectionBoundaryLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings2_get_IntersectionBoundaryDivisionLines(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryDivisionLines(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_IntersectionBoundaryDivisionLines(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryDivisionLines(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillVisible(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillVisible(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillVisible(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillVisible(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillHatchPatternType(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillHatchPatternType(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillHatchPatternType(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillHatchPatternType(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillHatchPatternName(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillHatchPatternName(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillHatchPatternName(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillHatchPatternName(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillHatchAngle(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillHatchAngle(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillHatchAngle(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillHatchAngle(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillHatchScale(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillHatchScale(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillHatchScale(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillHatchScale(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillHatchSpacing(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillHatchSpacing(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillHatchSpacing(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillHatchSpacing(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillColor(This,pColor)	\
    ( (This)->lpVtbl -> get_IntersectionFillColor(This,pColor) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillColor(This,pColor)	\
    ( (This)->lpVtbl -> put_IntersectionFillColor(This,pColor) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillLayer(This,Layer)	\
    ( (This)->lpVtbl -> get_IntersectionFillLayer(This,Layer) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillLayer(This,Layer)	\
    ( (This)->lpVtbl -> put_IntersectionFillLayer(This,Layer) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_IntersectionFillLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_IntersectionFillLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_IntersectionFillLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_IntersectionFillLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_IntersectionFillPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_IntersectionFillPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_IntersectionFillLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_IntersectionFillLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings2_get_IntersectionFillFaceTransparency(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionFillFaceTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_IntersectionFillFaceTransparency(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionFillFaceTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_BackgroundLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> get_BackgroundLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_BackgroundLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> put_BackgroundLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_BackgroundLinesHiddenLine(This,pVal)	\
    ( (This)->lpVtbl -> get_BackgroundLinesHiddenLine(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_BackgroundLinesHiddenLine(This,pVal)	\
    ( (This)->lpVtbl -> put_BackgroundLinesHiddenLine(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_BackgroundLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> get_BackgroundLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings2_put_BackgroundLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> put_BackgroundLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings2_get_BackgroundLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> get_BackgroundLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings2_put_BackgroundLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> put_BackgroundLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings2_get_BackgroundLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_BackgroundLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings2_put_BackgroundLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_BackgroundLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings2_get_BackgroundLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_BackgroundLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings2_put_BackgroundLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_BackgroundLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings2_get_BackgroundLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_BackgroundLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings2_put_BackgroundLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_BackgroundLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings2_get_BackgroundLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_BackgroundLinesLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings2_put_BackgroundLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_BackgroundLinesLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings2_get_ForegroundLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> get_ForegroundLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_ForegroundLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> put_ForegroundLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_ForegroundLinesHiddenLine(This,pVal)	\
    ( (This)->lpVtbl -> get_ForegroundLinesHiddenLine(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_ForegroundLinesHiddenLine(This,pVal)	\
    ( (This)->lpVtbl -> put_ForegroundLinesHiddenLine(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_ForegroundLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> get_ForegroundLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings2_put_ForegroundLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> put_ForegroundLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings2_get_ForegroundLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> get_ForegroundLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings2_put_ForegroundLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> put_ForegroundLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings2_get_ForegroundLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_ForegroundLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings2_put_ForegroundLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_ForegroundLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings2_get_ForegroundLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_ForegroundLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings2_put_ForegroundLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_ForegroundLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings2_get_ForegroundLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_ForegroundLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings2_put_ForegroundLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_ForegroundLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings2_get_ForegroundLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_ForegroundLinesLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings2_put_ForegroundLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_ForegroundLinesLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings2_get_ForegroundLinesFaceTransparency(This,pVal)	\
    ( (This)->lpVtbl -> get_ForegroundLinesFaceTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_ForegroundLinesFaceTransparency(This,pVal)	\
    ( (This)->lpVtbl -> put_ForegroundLinesFaceTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_ForegroundLinesEdgeTransparency(This,pVal)	\
    ( (This)->lpVtbl -> get_ForegroundLinesEdgeTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_ForegroundLinesEdgeTransparency(This,pVal)	\
    ( (This)->lpVtbl -> put_ForegroundLinesEdgeTransparency(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_CurveTangencyLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_CurveTangencyLinesVisible(This,pVal)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesVisible(This,pVal) ) 

#define IGcadSectionTypeSettings2_get_CurveTangencyLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings2_put_CurveTangencyLinesColor(This,pColor)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesColor(This,pColor) ) 

#define IGcadSectionTypeSettings2_get_CurveTangencyLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings2_put_CurveTangencyLinesLayer(This,Layer)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesLayer(This,Layer) ) 

#define IGcadSectionTypeSettings2_get_CurveTangencyLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings2_put_CurveTangencyLinesLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesLinetype(This,Linetype) ) 

#define IGcadSectionTypeSettings2_get_CurveTangencyLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings2_put_CurveTangencyLinesLinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesLinetypeScale(This,ltScale) ) 

#define IGcadSectionTypeSettings2_get_CurveTangencyLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings2_put_CurveTangencyLinesPlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesPlotStyleName(This,plotStyle) ) 

#define IGcadSectionTypeSettings2_get_CurveTangencyLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_CurveTangencyLinesLineweight(This,Lineweight) ) 

#define IGcadSectionTypeSettings2_put_CurveTangencyLinesLineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_CurveTangencyLinesLineweight(This,Lineweight) ) 


#define IGcadSectionTypeSettings2_get_IntersectionBoundaryVisible(This,pVal)	\
    ( (This)->lpVtbl -> get_IntersectionBoundaryVisible(This,pVal) ) 

#define IGcadSectionTypeSettings2_put_IntersectionBoundaryVisible(This,pVal)	\
    ( (This)->lpVtbl -> put_IntersectionBoundaryVisible(This,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSectionTypeSettings2_INTERFACE_DEFINED__ */


#ifndef __IGcadDynamicBlockReferenceProperty_INTERFACE_DEFINED__
#define __IGcadDynamicBlockReferenceProperty_INTERFACE_DEFINED__

/* interface IGcadDynamicBlockReferenceProperty */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadDynamicBlockReferenceProperty;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("017EAE27-EA30-4151-8272-BA072063C218")
    IGcadDynamicBlockReferenceProperty : public IDispatch
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PropertyName( 
            /* [retval][out] */ BSTR *PropertyName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ReadOnly( 
            /* [retval][out] */ VARIANT_BOOL *ReadOnly) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Show( 
            /* [retval][out] */ VARIANT_BOOL *Show) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *Description) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowedValues( 
            /* [retval][out] */ VARIANT *AllowedValues) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ VARIANT *Value) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ VARIANT Value) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnitsType( 
            /* [retval][out] */ GcDynamicBlockReferencePropertyUnitsType *Units) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDynamicBlockReferencePropertyVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDynamicBlockReferenceProperty * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDynamicBlockReferenceProperty * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadDynamicBlockReferenceProperty, get_PropertyName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PropertyName )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [retval][out] */ BSTR *PropertyName);
        
        DECLSPEC_XFGVIRT(IGcadDynamicBlockReferenceProperty, get_ReadOnly)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ReadOnly )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [retval][out] */ VARIANT_BOOL *ReadOnly);
        
        DECLSPEC_XFGVIRT(IGcadDynamicBlockReferenceProperty, get_Show)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Show )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [retval][out] */ VARIANT_BOOL *Show);
        
        DECLSPEC_XFGVIRT(IGcadDynamicBlockReferenceProperty, get_Description)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [retval][out] */ BSTR *Description);
        
        DECLSPEC_XFGVIRT(IGcadDynamicBlockReferenceProperty, get_AllowedValues)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowedValues )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [retval][out] */ VARIANT *AllowedValues);
        
        DECLSPEC_XFGVIRT(IGcadDynamicBlockReferenceProperty, get_Value)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [retval][out] */ VARIANT *Value);
        
        DECLSPEC_XFGVIRT(IGcadDynamicBlockReferenceProperty, put_Value)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [in] */ VARIANT Value);
        
        DECLSPEC_XFGVIRT(IGcadDynamicBlockReferenceProperty, get_UnitsType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnitsType )( 
            IGcadDynamicBlockReferenceProperty * This,
            /* [retval][out] */ GcDynamicBlockReferencePropertyUnitsType *Units);
        
        END_INTERFACE
    } IGcadDynamicBlockReferencePropertyVtbl;

    interface IGcadDynamicBlockReferenceProperty
    {
        CONST_VTBL struct IGcadDynamicBlockReferencePropertyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDynamicBlockReferenceProperty_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDynamicBlockReferenceProperty_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDynamicBlockReferenceProperty_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDynamicBlockReferenceProperty_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDynamicBlockReferenceProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDynamicBlockReferenceProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDynamicBlockReferenceProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDynamicBlockReferenceProperty_get_PropertyName(This,PropertyName)	\
    ( (This)->lpVtbl -> get_PropertyName(This,PropertyName) ) 

#define IGcadDynamicBlockReferenceProperty_get_ReadOnly(This,ReadOnly)	\
    ( (This)->lpVtbl -> get_ReadOnly(This,ReadOnly) ) 

#define IGcadDynamicBlockReferenceProperty_get_Show(This,Show)	\
    ( (This)->lpVtbl -> get_Show(This,Show) ) 

#define IGcadDynamicBlockReferenceProperty_get_Description(This,Description)	\
    ( (This)->lpVtbl -> get_Description(This,Description) ) 

#define IGcadDynamicBlockReferenceProperty_get_AllowedValues(This,AllowedValues)	\
    ( (This)->lpVtbl -> get_AllowedValues(This,AllowedValues) ) 

#define IGcadDynamicBlockReferenceProperty_get_Value(This,Value)	\
    ( (This)->lpVtbl -> get_Value(This,Value) ) 

#define IGcadDynamicBlockReferenceProperty_put_Value(This,Value)	\
    ( (This)->lpVtbl -> put_Value(This,Value) ) 

#define IGcadDynamicBlockReferenceProperty_get_UnitsType(This,Units)	\
    ( (This)->lpVtbl -> get_UnitsType(This,Units) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadDynamicBlockReferenceProperty_INTERFACE_DEFINED__ */


#ifndef __IGcadObjectEvents_INTERFACE_DEFINED__
#define __IGcadObjectEvents_INTERFACE_DEFINED__

/* interface IGcadObjectEvents */
/* [object][oleautomation][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadObjectEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("41B85986-5004-4888-9E89-7895663FA77C")
    IGcadObjectEvents : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT __stdcall Modified( 
            /* [in] */ IGcadObject *pObject) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadObjectEventsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadObjectEvents * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadObjectEvents * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadObjectEvents * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadObjectEvents * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadObjectEvents * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadObjectEvents * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadObjectEvents * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObjectEvents, Modified)
        /* [helpstring][id] */ HRESULT ( __stdcall *Modified )( 
            IGcadObjectEvents * This,
            /* [in] */ IGcadObject *pObject);
        
        END_INTERFACE
    } IGcadObjectEventsVtbl;

    interface IGcadObjectEvents
    {
        CONST_VTBL struct IGcadObjectEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadObjectEvents_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadObjectEvents_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadObjectEvents_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadObjectEvents_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadObjectEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadObjectEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadObjectEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadObjectEvents_Modified(This,pObject)	\
    ( (This)->lpVtbl -> Modified(This,pObject) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadObjectEvents_INTERFACE_DEFINED__ */


#ifndef __IGcadSortentsTable_INTERFACE_DEFINED__
#define __IGcadSortentsTable_INTERFACE_DEFINED__

/* interface IGcadSortentsTable */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadSortentsTable;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DEDB84CD-55C2-4F73-B534-7F06EBF8919F")
    IGcadSortentsTable : public IGcadObject
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MoveToBottom( 
            /* [in] */ VARIANT Objects) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MoveToTop( 
            /* [in] */ VARIANT Objects) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MoveBelow( 
            /* [in] */ VARIANT Objects,
            /* [in] */ IGcadEntity *Target) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MoveAbove( 
            /* [in] */ VARIANT Objects,
            /* [in] */ IGcadEntity *Target) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SwapOrder( 
            /* [in] */ IGcadEntity *Object1,
            /* [in] */ IGcadEntity *Object2) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Block( 
            /* [retval][out] */ IGcadBlock **pBlock) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFullDrawOrder( 
            /* [out] */ VARIANT *Objects,
            /* [in] */ VARIANT_BOOL honorSortentsSysvar) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetRelativeDrawOrder( 
            /* [out] */ VARIANT *Objects,
            /* [in] */ VARIANT_BOOL honorSortentsSysvar) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetRelativeDrawOrder( 
            /* [in] */ VARIANT Objects) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSortentsTableVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSortentsTable * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSortentsTable * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSortentsTable * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSortentsTable * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSortentsTable * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSortentsTable * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSortentsTable * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadSortentsTable * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSortentsTable * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadSortentsTable * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadSortentsTable * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadSortentsTable * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadSortentsTable * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadSortentsTable * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadSortentsTable * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadSortentsTable * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadSortentsTable * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadSortentsTable * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadSortentsTable * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadSortentsTable * This);
        
        DECLSPEC_XFGVIRT(IGcadSortentsTable, MoveToBottom)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MoveToBottom )( 
            IGcadSortentsTable * This,
            /* [in] */ VARIANT Objects);
        
        DECLSPEC_XFGVIRT(IGcadSortentsTable, MoveToTop)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MoveToTop )( 
            IGcadSortentsTable * This,
            /* [in] */ VARIANT Objects);
        
        DECLSPEC_XFGVIRT(IGcadSortentsTable, MoveBelow)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MoveBelow )( 
            IGcadSortentsTable * This,
            /* [in] */ VARIANT Objects,
            /* [in] */ IGcadEntity *Target);
        
        DECLSPEC_XFGVIRT(IGcadSortentsTable, MoveAbove)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MoveAbove )( 
            IGcadSortentsTable * This,
            /* [in] */ VARIANT Objects,
            /* [in] */ IGcadEntity *Target);
        
        DECLSPEC_XFGVIRT(IGcadSortentsTable, SwapOrder)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SwapOrder )( 
            IGcadSortentsTable * This,
            /* [in] */ IGcadEntity *Object1,
            /* [in] */ IGcadEntity *Object2);
        
        DECLSPEC_XFGVIRT(IGcadSortentsTable, Block)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Block )( 
            IGcadSortentsTable * This,
            /* [retval][out] */ IGcadBlock **pBlock);
        
        DECLSPEC_XFGVIRT(IGcadSortentsTable, GetFullDrawOrder)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFullDrawOrder )( 
            IGcadSortentsTable * This,
            /* [out] */ VARIANT *Objects,
            /* [in] */ VARIANT_BOOL honorSortentsSysvar);
        
        DECLSPEC_XFGVIRT(IGcadSortentsTable, GetRelativeDrawOrder)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetRelativeDrawOrder )( 
            IGcadSortentsTable * This,
            /* [out] */ VARIANT *Objects,
            /* [in] */ VARIANT_BOOL honorSortentsSysvar);
        
        DECLSPEC_XFGVIRT(IGcadSortentsTable, SetRelativeDrawOrder)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetRelativeDrawOrder )( 
            IGcadSortentsTable * This,
            /* [in] */ VARIANT Objects);
        
        END_INTERFACE
    } IGcadSortentsTableVtbl;

    interface IGcadSortentsTable
    {
        CONST_VTBL struct IGcadSortentsTableVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSortentsTable_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSortentsTable_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSortentsTable_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSortentsTable_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSortentsTable_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSortentsTable_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSortentsTable_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSortentsTable_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadSortentsTable_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSortentsTable_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadSortentsTable_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadSortentsTable_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadSortentsTable_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadSortentsTable_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadSortentsTable_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadSortentsTable_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadSortentsTable_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadSortentsTable_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadSortentsTable_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadSortentsTable_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadSortentsTable_MoveToBottom(This,Objects)	\
    ( (This)->lpVtbl -> MoveToBottom(This,Objects) ) 

#define IGcadSortentsTable_MoveToTop(This,Objects)	\
    ( (This)->lpVtbl -> MoveToTop(This,Objects) ) 

#define IGcadSortentsTable_MoveBelow(This,Objects,Target)	\
    ( (This)->lpVtbl -> MoveBelow(This,Objects,Target) ) 

#define IGcadSortentsTable_MoveAbove(This,Objects,Target)	\
    ( (This)->lpVtbl -> MoveAbove(This,Objects,Target) ) 

#define IGcadSortentsTable_SwapOrder(This,Object1,Object2)	\
    ( (This)->lpVtbl -> SwapOrder(This,Object1,Object2) ) 

#define IGcadSortentsTable_Block(This,pBlock)	\
    ( (This)->lpVtbl -> Block(This,pBlock) ) 

#define IGcadSortentsTable_GetFullDrawOrder(This,Objects,honorSortentsSysvar)	\
    ( (This)->lpVtbl -> GetFullDrawOrder(This,Objects,honorSortentsSysvar) ) 

#define IGcadSortentsTable_GetRelativeDrawOrder(This,Objects,honorSortentsSysvar)	\
    ( (This)->lpVtbl -> GetRelativeDrawOrder(This,Objects,honorSortentsSysvar) ) 

#define IGcadSortentsTable_SetRelativeDrawOrder(This,Objects)	\
    ( (This)->lpVtbl -> SetRelativeDrawOrder(This,Objects) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSortentsTable_INTERFACE_DEFINED__ */


#ifndef __IGcadIdPair_INTERFACE_DEFINED__
#define __IGcadIdPair_INTERFACE_DEFINED__

/* interface IGcadIdPair */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadIdPair;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1D3AF325-66DF-4CF6-B19F-1DCF053D75F9")
    IGcadIdPair : public IDispatch
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IsCloned( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IsOwnerXlated( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IsPrimary( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Key( 
            /* [retval][out] */ LONG_PTR *pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ LONG_PTR *pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ IDispatch **ApplicationObject) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadIdPairVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadIdPair * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadIdPair * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadIdPair * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadIdPair * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadIdPair * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadIdPair * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadIdPair * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadIdPair, get_IsCloned)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsCloned )( 
            IGcadIdPair * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadIdPair, get_IsOwnerXlated)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsOwnerXlated )( 
            IGcadIdPair * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadIdPair, get_IsPrimary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsPrimary )( 
            IGcadIdPair * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadIdPair, get_Key)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Key )( 
            IGcadIdPair * This,
            /* [retval][out] */ LONG_PTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcadIdPair, get_Value)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            IGcadIdPair * This,
            /* [retval][out] */ LONG_PTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcadIdPair, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadIdPair * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        END_INTERFACE
    } IGcadIdPairVtbl;

    interface IGcadIdPair
    {
        CONST_VTBL struct IGcadIdPairVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadIdPair_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadIdPair_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadIdPair_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadIdPair_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadIdPair_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadIdPair_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadIdPair_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadIdPair_get_IsCloned(This,pVal)	\
    ( (This)->lpVtbl -> get_IsCloned(This,pVal) ) 

#define IGcadIdPair_get_IsOwnerXlated(This,pVal)	\
    ( (This)->lpVtbl -> get_IsOwnerXlated(This,pVal) ) 

#define IGcadIdPair_get_IsPrimary(This,pVal)	\
    ( (This)->lpVtbl -> get_IsPrimary(This,pVal) ) 

#define IGcadIdPair_get_Key(This,pVal)	\
    ( (This)->lpVtbl -> get_Key(This,pVal) ) 

#define IGcadIdPair_get_Value(This,pVal)	\
    ( (This)->lpVtbl -> get_Value(This,pVal) ) 

#define IGcadIdPair_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadIdPair_INTERFACE_DEFINED__ */


#ifndef __IGcadTableStyle_INTERFACE_DEFINED__
#define __IGcadTableStyle_INTERFACE_DEFINED__

/* interface IGcadTableStyle */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadTableStyle;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4EC5CAC3-22E8-4B42-BBA8-77271650DEA4")
    IGcadTableStyle : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *bstrValue) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrValue) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *bstr) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Description( 
            /* [in] */ BSTR bstr) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BitFlags( 
            /* [retval][out] */ long *bitFlag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BitFlags( 
            /* [in] */ long bitFlag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FlowDirection( 
            /* [retval][out] */ GcTableDirection *pFlow) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FlowDirection( 
            /* [in] */ GcTableDirection pFlow) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HorzCellMargin( 
            /* [retval][out] */ double *dHorzCellMargin) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HorzCellMargin( 
            /* [in] */ double dHorzCellMargin) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VertCellMargin( 
            /* [retval][out] */ double *dVertCellMargin) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_VertCellMargin( 
            /* [in] */ double dVertCellMargin) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TitleSuppressed( 
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TitleSuppressed( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HeaderSuppressed( 
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_HeaderSuppressed( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTextStyle( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTextStyle( 
            /* [in] */ int rowTypes,
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTextHeight( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ double *pTextHeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTextHeight( 
            /* [in] */ int rowTypes,
            /* [in] */ double TextHeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAlignment( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ GcCellAlignment *pCellAlignment) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAlignment( 
            /* [in] */ int rowTypes,
            /* [in] */ GcCellAlignment cellAlignment) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetColor( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetColor( 
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBackgroundColor( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBackgroundColor( 
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBackgroundColorNone( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBackgroundColorNone( 
            /* [in] */ int rowTypes,
            /* [in] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridLineWeight( 
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridLineWeight( 
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridColor( 
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridColor( 
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGridVisibility( 
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetGridVisibility( 
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDataType( 
            /* [in] */ GcRowType rowType,
            /* [out] */ GcValueDataType *pDataType,
            /* [out] */ GcValueUnitType *pUnitType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetDataType( 
            /* [in] */ int rowTypes,
            /* [in] */ GcValueDataType nDataType,
            /* [in] */ GcValueUnitType nUnitType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFormat( 
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetFormat( 
            /* [in] */ int rowTypes,
            /* [in] */ BSTR val) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateCellStyle( 
            /* [in] */ BSTR bstrCellStyle) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateCellStyleFromStyle( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ BSTR bstrSourceCellStyle) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE RenameCellStyle( 
            /* [in] */ BSTR bstrOldName,
            /* [in] */ BSTR bstrNewName) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE DeleteCellStyle( 
            /* [in] */ BSTR bstrCellStyle) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetUniqueCellStyleName( 
            /* [in] */ BSTR pszBaseName,
            /* [retval][out] */ BSTR *pbstrUniqueName) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetIsCellStyleInUse( 
            /* [in] */ BSTR pszCellStyle,
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NumCellStyles( 
            /* [retval][out] */ long *NumCellStyles) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetCellStyles( 
            /* [in] */ VARIANT *cellStylesArray) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetTextStyleId( 
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ LONG_PTR *pVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetTextStyleId( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ LONG_PTR val) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetTextHeight2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ double *pHeight) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetTextHeight2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ double Height) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAlignment2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ GcCellAlignment *pCellAlignment) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetAlignment2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcCellAlignment cellAlignment) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetColor2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ IGcadGcCmColor **color) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetColor2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ IGcadGcCmColor *color) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetBackgroundColor2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ IGcadGcCmColor **color) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetBackgroundColor2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ IGcadGcCmColor *color) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetDataType2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [out] */ GcValueDataType *pDataType,
            /* [out] */ GcValueUnitType *pUnitType) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetDataType2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcValueDataType nDataType,
            /* [in] */ GcValueUnitType nUnitType) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetFormat2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [out] */ BSTR *pbstrFormat) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetFormat2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ BSTR bstrFormat) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetGridLineWeight2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineType,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetGridLineWeight2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineTypes,
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetGridColor2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineType,
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetGridColor2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineTypes,
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetGridVisibility2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineType,
            /* [retval][out] */ VARIANT_BOOL *bValue) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetGridVisibility2( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineTypes,
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_TemplateId( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_TemplateId( 
            /* [in] */ long pVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetTemplateId( 
            /* [in] */ long val,
            GcMergeCellStyleOption option) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetCellClass( 
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ int *cellClass) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetCellClass( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ int cellClass) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetRotation( 
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ double *Rotation) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetRotation( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ double Rotation) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetIsMergeAllEnabled( 
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ VARIANT_BOOL *bEnable) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE EnableMergeAll( 
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ VARIANT_BOOL bEnable) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadTableStyleVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadTableStyle * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadTableStyle * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadTableStyle * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadTableStyle * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadTableStyle * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadTableStyle * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadTableStyle * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadTableStyle * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadTableStyle * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadTableStyle * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadTableStyle * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadTableStyle * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadTableStyle * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadTableStyle * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadTableStyle * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadTableStyle * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadTableStyle * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadTableStyle * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadTableStyle * This);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadTableStyle * This,
            /* [retval][out] */ BSTR *bstrValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, get_Description)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IGcadTableStyle * This,
            /* [retval][out] */ BSTR *bstr);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, put_Description)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstr);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, get_BitFlags)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitFlags )( 
            IGcadTableStyle * This,
            /* [retval][out] */ long *bitFlag);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, put_BitFlags)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitFlags )( 
            IGcadTableStyle * This,
            /* [in] */ long bitFlag);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, get_FlowDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FlowDirection )( 
            IGcadTableStyle * This,
            /* [retval][out] */ GcTableDirection *pFlow);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, put_FlowDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FlowDirection )( 
            IGcadTableStyle * This,
            /* [in] */ GcTableDirection pFlow);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, get_HorzCellMargin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorzCellMargin )( 
            IGcadTableStyle * This,
            /* [retval][out] */ double *dHorzCellMargin);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, put_HorzCellMargin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HorzCellMargin )( 
            IGcadTableStyle * This,
            /* [in] */ double dHorzCellMargin);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, get_VertCellMargin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VertCellMargin )( 
            IGcadTableStyle * This,
            /* [retval][out] */ double *dVertCellMargin);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, put_VertCellMargin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VertCellMargin )( 
            IGcadTableStyle * This,
            /* [in] */ double dVertCellMargin);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, get_TitleSuppressed)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TitleSuppressed )( 
            IGcadTableStyle * This,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, put_TitleSuppressed)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TitleSuppressed )( 
            IGcadTableStyle * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, get_HeaderSuppressed)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HeaderSuppressed )( 
            IGcadTableStyle * This,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, put_HeaderSuppressed)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HeaderSuppressed )( 
            IGcadTableStyle * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetTextStyle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTextStyle )( 
            IGcadTableStyle * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetTextStyle)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTextStyle )( 
            IGcadTableStyle * This,
            /* [in] */ int rowTypes,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetTextHeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTextHeight )( 
            IGcadTableStyle * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ double *pTextHeight);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetTextHeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTextHeight )( 
            IGcadTableStyle * This,
            /* [in] */ int rowTypes,
            /* [in] */ double TextHeight);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetAlignment)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAlignment )( 
            IGcadTableStyle * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ GcCellAlignment *pCellAlignment);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetAlignment)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAlignment )( 
            IGcadTableStyle * This,
            /* [in] */ int rowTypes,
            /* [in] */ GcCellAlignment cellAlignment);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetColor )( 
            IGcadTableStyle * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetColor )( 
            IGcadTableStyle * This,
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetBackgroundColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBackgroundColor )( 
            IGcadTableStyle * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetBackgroundColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBackgroundColor )( 
            IGcadTableStyle * This,
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetBackgroundColorNone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBackgroundColorNone )( 
            IGcadTableStyle * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetBackgroundColorNone)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBackgroundColorNone )( 
            IGcadTableStyle * This,
            /* [in] */ int rowTypes,
            /* [in] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetGridLineWeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridLineWeight )( 
            IGcadTableStyle * This,
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetGridLineWeight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridLineWeight )( 
            IGcadTableStyle * This,
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetGridColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridColor )( 
            IGcadTableStyle * This,
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetGridColor)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridColor )( 
            IGcadTableStyle * This,
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetGridVisibility)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGridVisibility )( 
            IGcadTableStyle * This,
            /* [in] */ GcGridLineType gridLineType,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetGridVisibility)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetGridVisibility )( 
            IGcadTableStyle * This,
            /* [in] */ int gridLineTypes,
            /* [in] */ int rowTypes,
            /* [in] */ VARIANT_BOOL bValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetDataType)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataType )( 
            IGcadTableStyle * This,
            /* [in] */ GcRowType rowType,
            /* [out] */ GcValueDataType *pDataType,
            /* [out] */ GcValueUnitType *pUnitType);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetDataType)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetDataType )( 
            IGcadTableStyle * This,
            /* [in] */ int rowTypes,
            /* [in] */ GcValueDataType nDataType,
            /* [in] */ GcValueUnitType nUnitType);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetFormat)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFormat )( 
            IGcadTableStyle * This,
            /* [in] */ GcRowType rowType,
            /* [retval][out] */ BSTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetFormat)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetFormat )( 
            IGcadTableStyle * This,
            /* [in] */ int rowTypes,
            /* [in] */ BSTR val);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, CreateCellStyle)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateCellStyle )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, CreateCellStyleFromStyle)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateCellStyleFromStyle )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ BSTR bstrSourceCellStyle);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, RenameCellStyle)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *RenameCellStyle )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrOldName,
            /* [in] */ BSTR bstrNewName);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, DeleteCellStyle)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *DeleteCellStyle )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetUniqueCellStyleName)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetUniqueCellStyleName )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR pszBaseName,
            /* [retval][out] */ BSTR *pbstrUniqueName);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetIsCellStyleInUse)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetIsCellStyleInUse )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR pszCellStyle,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, get_NumCellStyles)
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumCellStyles )( 
            IGcadTableStyle * This,
            /* [retval][out] */ long *NumCellStyles);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetCellStyles)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetCellStyles )( 
            IGcadTableStyle * This,
            /* [in] */ VARIANT *cellStylesArray);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetTextStyleId)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetTextStyleId )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ LONG_PTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetTextStyleId)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetTextStyleId )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ LONG_PTR val);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetTextHeight2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetTextHeight2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ double *pHeight);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetTextHeight2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetTextHeight2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetAlignment2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAlignment2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ GcCellAlignment *pCellAlignment);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetAlignment2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetAlignment2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcCellAlignment cellAlignment);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetColor2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetColor2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ IGcadGcCmColor **color);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetColor2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetColor2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ IGcadGcCmColor *color);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetBackgroundColor2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetBackgroundColor2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ IGcadGcCmColor **color);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetBackgroundColor2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetBackgroundColor2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ IGcadGcCmColor *color);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetDataType2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetDataType2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [out] */ GcValueDataType *pDataType,
            /* [out] */ GcValueUnitType *pUnitType);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetDataType2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetDataType2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcValueDataType nDataType,
            /* [in] */ GcValueUnitType nUnitType);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetFormat2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetFormat2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [out] */ BSTR *pbstrFormat);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetFormat2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetFormat2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ BSTR bstrFormat);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetGridLineWeight2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetGridLineWeight2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineType,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetGridLineWeight2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetGridLineWeight2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineTypes,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetGridColor2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetGridColor2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineType,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetGridColor2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetGridColor2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineTypes,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetGridVisibility2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetGridVisibility2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineType,
            /* [retval][out] */ VARIANT_BOOL *bValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetGridVisibility2)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetGridVisibility2 )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ GcGridLineType gridLineTypes,
            /* [in] */ VARIANT_BOOL bValue);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, get_TemplateId)
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TemplateId )( 
            IGcadTableStyle * This,
            /* [retval][out] */ long *pVal);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, put_TemplateId)
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TemplateId )( 
            IGcadTableStyle * This,
            /* [in] */ long pVal);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetTemplateId)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetTemplateId )( 
            IGcadTableStyle * This,
            /* [in] */ long val,
            GcMergeCellStyleOption option);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetCellClass)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetCellClass )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ int *cellClass);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetCellClass)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetCellClass )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ int cellClass);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetRotation)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetRotation )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ double *Rotation);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, SetRotation)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetRotation )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ double Rotation);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, GetIsMergeAllEnabled)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetIsMergeAllEnabled )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [retval][out] */ VARIANT_BOOL *bEnable);
        
        DECLSPEC_XFGVIRT(IGcadTableStyle, EnableMergeAll)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *EnableMergeAll )( 
            IGcadTableStyle * This,
            /* [in] */ BSTR bstrCellStyle,
            /* [in] */ VARIANT_BOOL bEnable);
        
        END_INTERFACE
    } IGcadTableStyleVtbl;

    interface IGcadTableStyle
    {
        CONST_VTBL struct IGcadTableStyleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadTableStyle_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadTableStyle_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadTableStyle_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadTableStyle_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadTableStyle_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadTableStyle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadTableStyle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadTableStyle_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadTableStyle_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadTableStyle_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadTableStyle_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadTableStyle_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadTableStyle_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadTableStyle_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadTableStyle_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadTableStyle_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadTableStyle_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadTableStyle_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadTableStyle_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadTableStyle_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadTableStyle_get_Name(This,bstrValue)	\
    ( (This)->lpVtbl -> get_Name(This,bstrValue) ) 

#define IGcadTableStyle_put_Name(This,bstrValue)	\
    ( (This)->lpVtbl -> put_Name(This,bstrValue) ) 

#define IGcadTableStyle_get_Description(This,bstr)	\
    ( (This)->lpVtbl -> get_Description(This,bstr) ) 

#define IGcadTableStyle_put_Description(This,bstr)	\
    ( (This)->lpVtbl -> put_Description(This,bstr) ) 

#define IGcadTableStyle_get_BitFlags(This,bitFlag)	\
    ( (This)->lpVtbl -> get_BitFlags(This,bitFlag) ) 

#define IGcadTableStyle_put_BitFlags(This,bitFlag)	\
    ( (This)->lpVtbl -> put_BitFlags(This,bitFlag) ) 

#define IGcadTableStyle_get_FlowDirection(This,pFlow)	\
    ( (This)->lpVtbl -> get_FlowDirection(This,pFlow) ) 

#define IGcadTableStyle_put_FlowDirection(This,pFlow)	\
    ( (This)->lpVtbl -> put_FlowDirection(This,pFlow) ) 

#define IGcadTableStyle_get_HorzCellMargin(This,dHorzCellMargin)	\
    ( (This)->lpVtbl -> get_HorzCellMargin(This,dHorzCellMargin) ) 

#define IGcadTableStyle_put_HorzCellMargin(This,dHorzCellMargin)	\
    ( (This)->lpVtbl -> put_HorzCellMargin(This,dHorzCellMargin) ) 

#define IGcadTableStyle_get_VertCellMargin(This,dVertCellMargin)	\
    ( (This)->lpVtbl -> get_VertCellMargin(This,dVertCellMargin) ) 

#define IGcadTableStyle_put_VertCellMargin(This,dVertCellMargin)	\
    ( (This)->lpVtbl -> put_VertCellMargin(This,dVertCellMargin) ) 

#define IGcadTableStyle_get_TitleSuppressed(This,bValue)	\
    ( (This)->lpVtbl -> get_TitleSuppressed(This,bValue) ) 

#define IGcadTableStyle_put_TitleSuppressed(This,bValue)	\
    ( (This)->lpVtbl -> put_TitleSuppressed(This,bValue) ) 

#define IGcadTableStyle_get_HeaderSuppressed(This,bValue)	\
    ( (This)->lpVtbl -> get_HeaderSuppressed(This,bValue) ) 

#define IGcadTableStyle_put_HeaderSuppressed(This,bValue)	\
    ( (This)->lpVtbl -> put_HeaderSuppressed(This,bValue) ) 

#define IGcadTableStyle_GetTextStyle(This,rowType,bstrName)	\
    ( (This)->lpVtbl -> GetTextStyle(This,rowType,bstrName) ) 

#define IGcadTableStyle_SetTextStyle(This,rowTypes,bstrName)	\
    ( (This)->lpVtbl -> SetTextStyle(This,rowTypes,bstrName) ) 

#define IGcadTableStyle_GetTextHeight(This,rowType,pTextHeight)	\
    ( (This)->lpVtbl -> GetTextHeight(This,rowType,pTextHeight) ) 

#define IGcadTableStyle_SetTextHeight(This,rowTypes,TextHeight)	\
    ( (This)->lpVtbl -> SetTextHeight(This,rowTypes,TextHeight) ) 

#define IGcadTableStyle_GetAlignment(This,rowType,pCellAlignment)	\
    ( (This)->lpVtbl -> GetAlignment(This,rowType,pCellAlignment) ) 

#define IGcadTableStyle_SetAlignment(This,rowTypes,cellAlignment)	\
    ( (This)->lpVtbl -> SetAlignment(This,rowTypes,cellAlignment) ) 

#define IGcadTableStyle_GetColor(This,rowType,pColor)	\
    ( (This)->lpVtbl -> GetColor(This,rowType,pColor) ) 

#define IGcadTableStyle_SetColor(This,rowTypes,pColor)	\
    ( (This)->lpVtbl -> SetColor(This,rowTypes,pColor) ) 

#define IGcadTableStyle_GetBackgroundColor(This,rowType,pColor)	\
    ( (This)->lpVtbl -> GetBackgroundColor(This,rowType,pColor) ) 

#define IGcadTableStyle_SetBackgroundColor(This,rowTypes,pColor)	\
    ( (This)->lpVtbl -> SetBackgroundColor(This,rowTypes,pColor) ) 

#define IGcadTableStyle_GetBackgroundColorNone(This,rowType,bValue)	\
    ( (This)->lpVtbl -> GetBackgroundColorNone(This,rowType,bValue) ) 

#define IGcadTableStyle_SetBackgroundColorNone(This,rowTypes,bValue)	\
    ( (This)->lpVtbl -> SetBackgroundColorNone(This,rowTypes,bValue) ) 

#define IGcadTableStyle_GetGridLineWeight(This,gridLineType,rowType,Lineweight)	\
    ( (This)->lpVtbl -> GetGridLineWeight(This,gridLineType,rowType,Lineweight) ) 

#define IGcadTableStyle_SetGridLineWeight(This,gridLineTypes,rowTypes,Lineweight)	\
    ( (This)->lpVtbl -> SetGridLineWeight(This,gridLineTypes,rowTypes,Lineweight) ) 

#define IGcadTableStyle_GetGridColor(This,gridLineType,rowType,pColor)	\
    ( (This)->lpVtbl -> GetGridColor(This,gridLineType,rowType,pColor) ) 

#define IGcadTableStyle_SetGridColor(This,gridLineTypes,rowTypes,pColor)	\
    ( (This)->lpVtbl -> SetGridColor(This,gridLineTypes,rowTypes,pColor) ) 

#define IGcadTableStyle_GetGridVisibility(This,gridLineType,rowType,bValue)	\
    ( (This)->lpVtbl -> GetGridVisibility(This,gridLineType,rowType,bValue) ) 

#define IGcadTableStyle_SetGridVisibility(This,gridLineTypes,rowTypes,bValue)	\
    ( (This)->lpVtbl -> SetGridVisibility(This,gridLineTypes,rowTypes,bValue) ) 

#define IGcadTableStyle_GetDataType(This,rowType,pDataType,pUnitType)	\
    ( (This)->lpVtbl -> GetDataType(This,rowType,pDataType,pUnitType) ) 

#define IGcadTableStyle_SetDataType(This,rowTypes,nDataType,nUnitType)	\
    ( (This)->lpVtbl -> SetDataType(This,rowTypes,nDataType,nUnitType) ) 

#define IGcadTableStyle_GetFormat(This,rowType,pVal)	\
    ( (This)->lpVtbl -> GetFormat(This,rowType,pVal) ) 

#define IGcadTableStyle_SetFormat(This,rowTypes,val)	\
    ( (This)->lpVtbl -> SetFormat(This,rowTypes,val) ) 

#define IGcadTableStyle_CreateCellStyle(This,bstrCellStyle)	\
    ( (This)->lpVtbl -> CreateCellStyle(This,bstrCellStyle) ) 

#define IGcadTableStyle_CreateCellStyleFromStyle(This,bstrCellStyle,bstrSourceCellStyle)	\
    ( (This)->lpVtbl -> CreateCellStyleFromStyle(This,bstrCellStyle,bstrSourceCellStyle) ) 

#define IGcadTableStyle_RenameCellStyle(This,bstrOldName,bstrNewName)	\
    ( (This)->lpVtbl -> RenameCellStyle(This,bstrOldName,bstrNewName) ) 

#define IGcadTableStyle_DeleteCellStyle(This,bstrCellStyle)	\
    ( (This)->lpVtbl -> DeleteCellStyle(This,bstrCellStyle) ) 

#define IGcadTableStyle_GetUniqueCellStyleName(This,pszBaseName,pbstrUniqueName)	\
    ( (This)->lpVtbl -> GetUniqueCellStyleName(This,pszBaseName,pbstrUniqueName) ) 

#define IGcadTableStyle_GetIsCellStyleInUse(This,pszCellStyle,pVal)	\
    ( (This)->lpVtbl -> GetIsCellStyleInUse(This,pszCellStyle,pVal) ) 

#define IGcadTableStyle_get_NumCellStyles(This,NumCellStyles)	\
    ( (This)->lpVtbl -> get_NumCellStyles(This,NumCellStyles) ) 

#define IGcadTableStyle_GetCellStyles(This,cellStylesArray)	\
    ( (This)->lpVtbl -> GetCellStyles(This,cellStylesArray) ) 

#define IGcadTableStyle_GetTextStyleId(This,bstrCellStyle,pVal)	\
    ( (This)->lpVtbl -> GetTextStyleId(This,bstrCellStyle,pVal) ) 

#define IGcadTableStyle_SetTextStyleId(This,bstrCellStyle,val)	\
    ( (This)->lpVtbl -> SetTextStyleId(This,bstrCellStyle,val) ) 

#define IGcadTableStyle_GetTextHeight2(This,bstrCellStyle,pHeight)	\
    ( (This)->lpVtbl -> GetTextHeight2(This,bstrCellStyle,pHeight) ) 

#define IGcadTableStyle_SetTextHeight2(This,bstrCellStyle,Height)	\
    ( (This)->lpVtbl -> SetTextHeight2(This,bstrCellStyle,Height) ) 

#define IGcadTableStyle_GetAlignment2(This,bstrCellStyle,pCellAlignment)	\
    ( (This)->lpVtbl -> GetAlignment2(This,bstrCellStyle,pCellAlignment) ) 

#define IGcadTableStyle_SetAlignment2(This,bstrCellStyle,cellAlignment)	\
    ( (This)->lpVtbl -> SetAlignment2(This,bstrCellStyle,cellAlignment) ) 

#define IGcadTableStyle_GetColor2(This,bstrCellStyle,color)	\
    ( (This)->lpVtbl -> GetColor2(This,bstrCellStyle,color) ) 

#define IGcadTableStyle_SetColor2(This,bstrCellStyle,color)	\
    ( (This)->lpVtbl -> SetColor2(This,bstrCellStyle,color) ) 

#define IGcadTableStyle_GetBackgroundColor2(This,bstrCellStyle,color)	\
    ( (This)->lpVtbl -> GetBackgroundColor2(This,bstrCellStyle,color) ) 

#define IGcadTableStyle_SetBackgroundColor2(This,bstrCellStyle,color)	\
    ( (This)->lpVtbl -> SetBackgroundColor2(This,bstrCellStyle,color) ) 

#define IGcadTableStyle_GetDataType2(This,bstrCellStyle,pDataType,pUnitType)	\
    ( (This)->lpVtbl -> GetDataType2(This,bstrCellStyle,pDataType,pUnitType) ) 

#define IGcadTableStyle_SetDataType2(This,bstrCellStyle,nDataType,nUnitType)	\
    ( (This)->lpVtbl -> SetDataType2(This,bstrCellStyle,nDataType,nUnitType) ) 

#define IGcadTableStyle_GetFormat2(This,bstrCellStyle,pbstrFormat)	\
    ( (This)->lpVtbl -> GetFormat2(This,bstrCellStyle,pbstrFormat) ) 

#define IGcadTableStyle_SetFormat2(This,bstrCellStyle,bstrFormat)	\
    ( (This)->lpVtbl -> SetFormat2(This,bstrCellStyle,bstrFormat) ) 

#define IGcadTableStyle_GetGridLineWeight2(This,bstrCellStyle,gridLineType,Lineweight)	\
    ( (This)->lpVtbl -> GetGridLineWeight2(This,bstrCellStyle,gridLineType,Lineweight) ) 

#define IGcadTableStyle_SetGridLineWeight2(This,bstrCellStyle,gridLineTypes,Lineweight)	\
    ( (This)->lpVtbl -> SetGridLineWeight2(This,bstrCellStyle,gridLineTypes,Lineweight) ) 

#define IGcadTableStyle_GetGridColor2(This,bstrCellStyle,gridLineType,pColor)	\
    ( (This)->lpVtbl -> GetGridColor2(This,bstrCellStyle,gridLineType,pColor) ) 

#define IGcadTableStyle_SetGridColor2(This,bstrCellStyle,gridLineTypes,pColor)	\
    ( (This)->lpVtbl -> SetGridColor2(This,bstrCellStyle,gridLineTypes,pColor) ) 

#define IGcadTableStyle_GetGridVisibility2(This,bstrCellStyle,gridLineType,bValue)	\
    ( (This)->lpVtbl -> GetGridVisibility2(This,bstrCellStyle,gridLineType,bValue) ) 

#define IGcadTableStyle_SetGridVisibility2(This,bstrCellStyle,gridLineTypes,bValue)	\
    ( (This)->lpVtbl -> SetGridVisibility2(This,bstrCellStyle,gridLineTypes,bValue) ) 

#define IGcadTableStyle_get_TemplateId(This,pVal)	\
    ( (This)->lpVtbl -> get_TemplateId(This,pVal) ) 

#define IGcadTableStyle_put_TemplateId(This,pVal)	\
    ( (This)->lpVtbl -> put_TemplateId(This,pVal) ) 

#define IGcadTableStyle_SetTemplateId(This,val,option)	\
    ( (This)->lpVtbl -> SetTemplateId(This,val,option) ) 

#define IGcadTableStyle_GetCellClass(This,bstrCellStyle,cellClass)	\
    ( (This)->lpVtbl -> GetCellClass(This,bstrCellStyle,cellClass) ) 

#define IGcadTableStyle_SetCellClass(This,bstrCellStyle,cellClass)	\
    ( (This)->lpVtbl -> SetCellClass(This,bstrCellStyle,cellClass) ) 

#define IGcadTableStyle_GetRotation(This,bstrCellStyle,Rotation)	\
    ( (This)->lpVtbl -> GetRotation(This,bstrCellStyle,Rotation) ) 

#define IGcadTableStyle_SetRotation(This,bstrCellStyle,Rotation)	\
    ( (This)->lpVtbl -> SetRotation(This,bstrCellStyle,Rotation) ) 

#define IGcadTableStyle_GetIsMergeAllEnabled(This,bstrCellStyle,bEnable)	\
    ( (This)->lpVtbl -> GetIsMergeAllEnabled(This,bstrCellStyle,bEnable) ) 

#define IGcadTableStyle_EnableMergeAll(This,bstrCellStyle,bEnable)	\
    ( (This)->lpVtbl -> EnableMergeAll(This,bstrCellStyle,bEnable) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadTableStyle_INTERFACE_DEFINED__ */


#ifndef __IGcadMLeaderStyle_INTERFACE_DEFINED__
#define __IGcadMLeaderStyle_INTERFACE_DEFINED__

/* interface IGcadMLeaderStyle */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadMLeaderStyle;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("865CCF2C-B13D-48CB-9605-04E135F8FF30")
    IGcadMLeaderStyle : public IGcadObject
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR Name) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *Description) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Description( 
            /* [in] */ BSTR Description) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BitFlags( 
            /* [retval][out] */ long *bitFlag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BitFlags( 
            /* [in] */ long bitFlag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ContentType( 
            /* [retval][out] */ GcMLeaderContentType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ContentType( 
            /* [in] */ GcMLeaderContentType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DrawMLeaderOrderType( 
            /* [retval][out] */ GcDrawMLeaderOrderType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DrawMLeaderOrderType( 
            /* [in] */ GcDrawMLeaderOrderType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DrawLeaderOrderType( 
            /* [retval][out] */ GcDrawLeaderOrderType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DrawLeaderOrderType( 
            /* [in] */ GcDrawLeaderOrderType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MaxLeaderSegmentsPoints( 
            /* [retval][out] */ int *number) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MaxLeaderSegmentsPoints( 
            /* [in] */ int number) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FirstSegmentAngleConstraint( 
            /* [retval][out] */ GcSegmentAngleType *constraint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FirstSegmentAngleConstraint( 
            /* [in] */ GcSegmentAngleType constraint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SecondSegmentAngleConstraint( 
            /* [retval][out] */ GcSegmentAngleType *constraint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SecondSegmentAngleConstraint( 
            /* [in] */ GcSegmentAngleType constraint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderLinetype( 
            /* [retval][out] */ GcMLeaderType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLinetype( 
            /* [in] */ GcMLeaderType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderLineColor( 
            /* [retval][out] */ IGcadGcCmColor **color) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLineColor( 
            /* [in] */ IGcadGcCmColor *color) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderLineTypeId( 
            /* [retval][out] */ GCAD_LTYPE *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLineTypeId( 
            /* [in] */ GCAD_LTYPE Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderLineWeight( 
            /* [retval][out] */ GcLineWeight *weight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLineWeight( 
            /* [in] */ GcLineWeight weight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableLanding( 
            /* [retval][out] */ VARIANT_BOOL *enabled) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableLanding( 
            /* [in] */ VARIANT_BOOL enabled) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LandingGap( 
            /* [retval][out] */ double *LandingGap) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LandingGap( 
            /* [in] */ double LandingGap) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableDogleg( 
            /* [retval][out] */ VARIANT_BOOL *enabled) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableDogleg( 
            /* [in] */ VARIANT_BOOL enabled) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DoglegLength( 
            /* [retval][out] */ double *DoglegLength) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DoglegLength( 
            /* [in] */ double DoglegLength) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowSymbol( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowSymbol( 
            /* [in] */ BSTR Name) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextStyle( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextStyle( 
            /* [in] */ BSTR Name) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextAttachmentDirection( 
            /* [retval][out] */ GcTextAttachmentDirection *dir) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextAttachmentDirection( 
            /* [in] */ GcTextAttachmentDirection dir) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextLeftAttachmentType( 
            /* [retval][out] */ GcTextAttachmentType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextLeftAttachmentType( 
            /* [in] */ GcTextAttachmentType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextRightAttachmentType( 
            /* [retval][out] */ GcTextAttachmentType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextRightAttachmentType( 
            /* [in] */ GcTextAttachmentType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextTopAttachmentType( 
            /* [retval][out] */ GcVerticalTextAttachmentType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextTopAttachmentType( 
            /* [in] */ GcVerticalTextAttachmentType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextBottomAttachmentType( 
            /* [retval][out] */ GcVerticalTextAttachmentType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextBottomAttachmentType( 
            /* [in] */ GcVerticalTextAttachmentType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextColor( 
            /* [retval][out] */ IGcadGcCmColor **color) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextColor( 
            /* [in] */ IGcadGcCmColor *color) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextHeight( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextHeight( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableFrameText( 
            /* [retval][out] */ VARIANT_BOOL *enabled) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableFrameText( 
            /* [in] */ VARIANT_BOOL enabled) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AlignSpace( 
            /* [retval][out] */ double *AlignSpace) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AlignSpace( 
            /* [in] */ double AlignSpace) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Block( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Block( 
            /* [in] */ BSTR Name) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BlockColor( 
            /* [retval][out] */ IGcadGcCmColor **color) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BlockColor( 
            /* [in] */ IGcadGcCmColor *color) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableBlockScale( 
            /* [retval][out] */ VARIANT_BOOL *enabled) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableBlockScale( 
            /* [in] */ VARIANT_BOOL enabled) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BlockScale( 
            /* [retval][out] */ double *ScaleFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BlockScale( 
            /* [in] */ double ScaleFactor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableBlockRotation( 
            /* [retval][out] */ VARIANT_BOOL *enabled) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableBlockRotation( 
            /* [in] */ VARIANT_BOOL enabled) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BlockRotation( 
            /* [retval][out] */ double *Rotation) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BlockRotation( 
            /* [in] */ double Rotation) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BlockConnectionType( 
            /* [retval][out] */ GcBlockConnectionType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BlockConnectionType( 
            /* [in] */ GcBlockConnectionType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor( 
            /* [retval][out] */ double *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor( 
            /* [in] */ double scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_OverwritePropChanged( 
            /* [retval][out] */ VARIANT_BOOL *changed) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Annotative( 
            /* [retval][out] */ VARIANT_BOOL *Annotative) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Annotative( 
            /* [in] */ VARIANT_BOOL Annotative) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BreakSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BreakSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextString( 
            /* [retval][out] */ BSTR *Text) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextString( 
            /* [in] */ BSTR Text) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextAngleType( 
            /* [retval][out] */ GcTextAngleType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextAngleType( 
            /* [in] */ GcTextAngleType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextAlignmentType( 
            /* [retval][out] */ GcTextAlignmentType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextAlignmentType( 
            /* [in] */ GcTextAlignmentType Type) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadMLeaderStyleVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadMLeaderStyle * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadMLeaderStyle * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadMLeaderStyle * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadMLeaderStyle * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadMLeaderStyle * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadMLeaderStyle * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadMLeaderStyle * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadMLeaderStyle * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadMLeaderStyle * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadMLeaderStyle * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadMLeaderStyle * This);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadMLeaderStyle * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_Description)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ BSTR *Description);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_Description)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
            IGcadMLeaderStyle * This,
            /* [in] */ BSTR Description);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_BitFlags)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitFlags )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ long *bitFlag);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_BitFlags)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitFlags )( 
            IGcadMLeaderStyle * This,
            /* [in] */ long bitFlag);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_ContentType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContentType )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcMLeaderContentType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_ContentType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContentType )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcMLeaderContentType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_DrawMLeaderOrderType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DrawMLeaderOrderType )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcDrawMLeaderOrderType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_DrawMLeaderOrderType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DrawMLeaderOrderType )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcDrawMLeaderOrderType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_DrawLeaderOrderType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DrawLeaderOrderType )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcDrawLeaderOrderType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_DrawLeaderOrderType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DrawLeaderOrderType )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcDrawLeaderOrderType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_MaxLeaderSegmentsPoints)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxLeaderSegmentsPoints )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ int *number);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_MaxLeaderSegmentsPoints)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxLeaderSegmentsPoints )( 
            IGcadMLeaderStyle * This,
            /* [in] */ int number);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_FirstSegmentAngleConstraint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FirstSegmentAngleConstraint )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcSegmentAngleType *constraint);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_FirstSegmentAngleConstraint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FirstSegmentAngleConstraint )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcSegmentAngleType constraint);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_SecondSegmentAngleConstraint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecondSegmentAngleConstraint )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcSegmentAngleType *constraint);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_SecondSegmentAngleConstraint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SecondSegmentAngleConstraint )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcSegmentAngleType constraint);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_LeaderLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderLinetype )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcMLeaderType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_LeaderLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLinetype )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcMLeaderType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_LeaderLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderLineColor )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ IGcadGcCmColor **color);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_LeaderLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLineColor )( 
            IGcadMLeaderStyle * This,
            /* [in] */ IGcadGcCmColor *color);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_LeaderLineTypeId)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderLineTypeId )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GCAD_LTYPE *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_LeaderLineTypeId)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLineTypeId )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GCAD_LTYPE Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_LeaderLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderLineWeight )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcLineWeight *weight);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_LeaderLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLineWeight )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcLineWeight weight);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_EnableLanding)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableLanding )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ VARIANT_BOOL *enabled);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_EnableLanding)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableLanding )( 
            IGcadMLeaderStyle * This,
            /* [in] */ VARIANT_BOOL enabled);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_LandingGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LandingGap )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ double *LandingGap);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_LandingGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LandingGap )( 
            IGcadMLeaderStyle * This,
            /* [in] */ double LandingGap);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_EnableDogleg)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableDogleg )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ VARIANT_BOOL *enabled);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_EnableDogleg)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableDogleg )( 
            IGcadMLeaderStyle * This,
            /* [in] */ VARIANT_BOOL enabled);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_DoglegLength)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoglegLength )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ double *DoglegLength);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_DoglegLength)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoglegLength )( 
            IGcadMLeaderStyle * This,
            /* [in] */ double DoglegLength);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_ArrowSymbol)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowSymbol )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_ArrowSymbol)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowSymbol )( 
            IGcadMLeaderStyle * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_ArrowSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowSize )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_ArrowSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowSize )( 
            IGcadMLeaderStyle * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_TextStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyle )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_TextStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyle )( 
            IGcadMLeaderStyle * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_TextAttachmentDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextAttachmentDirection )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcTextAttachmentDirection *dir);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_TextAttachmentDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextAttachmentDirection )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcTextAttachmentDirection dir);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_TextLeftAttachmentType)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextLeftAttachmentType )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcTextAttachmentType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_TextLeftAttachmentType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextLeftAttachmentType )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcTextAttachmentType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_TextRightAttachmentType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextRightAttachmentType )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcTextAttachmentType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_TextRightAttachmentType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextRightAttachmentType )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcTextAttachmentType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_TextTopAttachmentType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextTopAttachmentType )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcVerticalTextAttachmentType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_TextTopAttachmentType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextTopAttachmentType )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcVerticalTextAttachmentType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_TextBottomAttachmentType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextBottomAttachmentType )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcVerticalTextAttachmentType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_TextBottomAttachmentType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextBottomAttachmentType )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcVerticalTextAttachmentType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_TextColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextColor )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ IGcadGcCmColor **color);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_TextColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextColor )( 
            IGcadMLeaderStyle * This,
            /* [in] */ IGcadGcCmColor *color);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_TextHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextHeight )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_TextHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextHeight )( 
            IGcadMLeaderStyle * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_EnableFrameText)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableFrameText )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ VARIANT_BOOL *enabled);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_EnableFrameText)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableFrameText )( 
            IGcadMLeaderStyle * This,
            /* [in] */ VARIANT_BOOL enabled);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_AlignSpace)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AlignSpace )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ double *AlignSpace);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_AlignSpace)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AlignSpace )( 
            IGcadMLeaderStyle * This,
            /* [in] */ double AlignSpace);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_Block)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Block )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_Block)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Block )( 
            IGcadMLeaderStyle * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_BlockColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BlockColor )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ IGcadGcCmColor **color);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_BlockColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BlockColor )( 
            IGcadMLeaderStyle * This,
            /* [in] */ IGcadGcCmColor *color);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_EnableBlockScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableBlockScale )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ VARIANT_BOOL *enabled);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_EnableBlockScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableBlockScale )( 
            IGcadMLeaderStyle * This,
            /* [in] */ VARIANT_BOOL enabled);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_BlockScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BlockScale )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ double *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_BlockScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BlockScale )( 
            IGcadMLeaderStyle * This,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_EnableBlockRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableBlockRotation )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ VARIANT_BOOL *enabled);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_EnableBlockRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableBlockRotation )( 
            IGcadMLeaderStyle * This,
            /* [in] */ VARIANT_BOOL enabled);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_BlockRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BlockRotation )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ double *Rotation);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_BlockRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BlockRotation )( 
            IGcadMLeaderStyle * This,
            /* [in] */ double Rotation);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_BlockConnectionType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BlockConnectionType )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcBlockConnectionType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_BlockConnectionType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BlockConnectionType )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcBlockConnectionType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ double *scale);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadMLeaderStyle * This,
            /* [in] */ double scale);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_OverwritePropChanged)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OverwritePropChanged )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ VARIANT_BOOL *changed);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_Annotative)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Annotative )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ VARIANT_BOOL *Annotative);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_Annotative)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Annotative )( 
            IGcadMLeaderStyle * This,
            /* [in] */ VARIANT_BOOL Annotative);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_BreakSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BreakSize )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_BreakSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BreakSize )( 
            IGcadMLeaderStyle * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_TextString)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextString )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ BSTR *Text);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_TextString)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextString )( 
            IGcadMLeaderStyle * This,
            /* [in] */ BSTR Text);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_TextAngleType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextAngleType )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcTextAngleType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_TextAngleType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextAngleType )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcTextAngleType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, get_TextAlignmentType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextAlignmentType )( 
            IGcadMLeaderStyle * This,
            /* [retval][out] */ GcTextAlignmentType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderStyle, put_TextAlignmentType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextAlignmentType )( 
            IGcadMLeaderStyle * This,
            /* [in] */ GcTextAlignmentType Type);
        
        END_INTERFACE
    } IGcadMLeaderStyleVtbl;

    interface IGcadMLeaderStyle
    {
        CONST_VTBL struct IGcadMLeaderStyleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadMLeaderStyle_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadMLeaderStyle_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadMLeaderStyle_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadMLeaderStyle_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadMLeaderStyle_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadMLeaderStyle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadMLeaderStyle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadMLeaderStyle_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadMLeaderStyle_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadMLeaderStyle_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadMLeaderStyle_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadMLeaderStyle_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadMLeaderStyle_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadMLeaderStyle_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadMLeaderStyle_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadMLeaderStyle_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadMLeaderStyle_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadMLeaderStyle_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadMLeaderStyle_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadMLeaderStyle_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadMLeaderStyle_get_Name(This,Name)	\
    ( (This)->lpVtbl -> get_Name(This,Name) ) 

#define IGcadMLeaderStyle_put_Name(This,Name)	\
    ( (This)->lpVtbl -> put_Name(This,Name) ) 

#define IGcadMLeaderStyle_get_Description(This,Description)	\
    ( (This)->lpVtbl -> get_Description(This,Description) ) 

#define IGcadMLeaderStyle_put_Description(This,Description)	\
    ( (This)->lpVtbl -> put_Description(This,Description) ) 

#define IGcadMLeaderStyle_get_BitFlags(This,bitFlag)	\
    ( (This)->lpVtbl -> get_BitFlags(This,bitFlag) ) 

#define IGcadMLeaderStyle_put_BitFlags(This,bitFlag)	\
    ( (This)->lpVtbl -> put_BitFlags(This,bitFlag) ) 

#define IGcadMLeaderStyle_get_ContentType(This,Type)	\
    ( (This)->lpVtbl -> get_ContentType(This,Type) ) 

#define IGcadMLeaderStyle_put_ContentType(This,Type)	\
    ( (This)->lpVtbl -> put_ContentType(This,Type) ) 

#define IGcadMLeaderStyle_get_DrawMLeaderOrderType(This,Type)	\
    ( (This)->lpVtbl -> get_DrawMLeaderOrderType(This,Type) ) 

#define IGcadMLeaderStyle_put_DrawMLeaderOrderType(This,Type)	\
    ( (This)->lpVtbl -> put_DrawMLeaderOrderType(This,Type) ) 

#define IGcadMLeaderStyle_get_DrawLeaderOrderType(This,Type)	\
    ( (This)->lpVtbl -> get_DrawLeaderOrderType(This,Type) ) 

#define IGcadMLeaderStyle_put_DrawLeaderOrderType(This,Type)	\
    ( (This)->lpVtbl -> put_DrawLeaderOrderType(This,Type) ) 

#define IGcadMLeaderStyle_get_MaxLeaderSegmentsPoints(This,number)	\
    ( (This)->lpVtbl -> get_MaxLeaderSegmentsPoints(This,number) ) 

#define IGcadMLeaderStyle_put_MaxLeaderSegmentsPoints(This,number)	\
    ( (This)->lpVtbl -> put_MaxLeaderSegmentsPoints(This,number) ) 

#define IGcadMLeaderStyle_get_FirstSegmentAngleConstraint(This,constraint)	\
    ( (This)->lpVtbl -> get_FirstSegmentAngleConstraint(This,constraint) ) 

#define IGcadMLeaderStyle_put_FirstSegmentAngleConstraint(This,constraint)	\
    ( (This)->lpVtbl -> put_FirstSegmentAngleConstraint(This,constraint) ) 

#define IGcadMLeaderStyle_get_SecondSegmentAngleConstraint(This,constraint)	\
    ( (This)->lpVtbl -> get_SecondSegmentAngleConstraint(This,constraint) ) 

#define IGcadMLeaderStyle_put_SecondSegmentAngleConstraint(This,constraint)	\
    ( (This)->lpVtbl -> put_SecondSegmentAngleConstraint(This,constraint) ) 

#define IGcadMLeaderStyle_get_LeaderLinetype(This,Type)	\
    ( (This)->lpVtbl -> get_LeaderLinetype(This,Type) ) 

#define IGcadMLeaderStyle_put_LeaderLinetype(This,Type)	\
    ( (This)->lpVtbl -> put_LeaderLinetype(This,Type) ) 

#define IGcadMLeaderStyle_get_LeaderLineColor(This,color)	\
    ( (This)->lpVtbl -> get_LeaderLineColor(This,color) ) 

#define IGcadMLeaderStyle_put_LeaderLineColor(This,color)	\
    ( (This)->lpVtbl -> put_LeaderLineColor(This,color) ) 

#define IGcadMLeaderStyle_get_LeaderLineTypeId(This,Type)	\
    ( (This)->lpVtbl -> get_LeaderLineTypeId(This,Type) ) 

#define IGcadMLeaderStyle_put_LeaderLineTypeId(This,Type)	\
    ( (This)->lpVtbl -> put_LeaderLineTypeId(This,Type) ) 

#define IGcadMLeaderStyle_get_LeaderLineWeight(This,weight)	\
    ( (This)->lpVtbl -> get_LeaderLineWeight(This,weight) ) 

#define IGcadMLeaderStyle_put_LeaderLineWeight(This,weight)	\
    ( (This)->lpVtbl -> put_LeaderLineWeight(This,weight) ) 

#define IGcadMLeaderStyle_get_EnableLanding(This,enabled)	\
    ( (This)->lpVtbl -> get_EnableLanding(This,enabled) ) 

#define IGcadMLeaderStyle_put_EnableLanding(This,enabled)	\
    ( (This)->lpVtbl -> put_EnableLanding(This,enabled) ) 

#define IGcadMLeaderStyle_get_LandingGap(This,LandingGap)	\
    ( (This)->lpVtbl -> get_LandingGap(This,LandingGap) ) 

#define IGcadMLeaderStyle_put_LandingGap(This,LandingGap)	\
    ( (This)->lpVtbl -> put_LandingGap(This,LandingGap) ) 

#define IGcadMLeaderStyle_get_EnableDogleg(This,enabled)	\
    ( (This)->lpVtbl -> get_EnableDogleg(This,enabled) ) 

#define IGcadMLeaderStyle_put_EnableDogleg(This,enabled)	\
    ( (This)->lpVtbl -> put_EnableDogleg(This,enabled) ) 

#define IGcadMLeaderStyle_get_DoglegLength(This,DoglegLength)	\
    ( (This)->lpVtbl -> get_DoglegLength(This,DoglegLength) ) 

#define IGcadMLeaderStyle_put_DoglegLength(This,DoglegLength)	\
    ( (This)->lpVtbl -> put_DoglegLength(This,DoglegLength) ) 

#define IGcadMLeaderStyle_get_ArrowSymbol(This,Name)	\
    ( (This)->lpVtbl -> get_ArrowSymbol(This,Name) ) 

#define IGcadMLeaderStyle_put_ArrowSymbol(This,Name)	\
    ( (This)->lpVtbl -> put_ArrowSymbol(This,Name) ) 

#define IGcadMLeaderStyle_get_ArrowSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowSize(This,size) ) 

#define IGcadMLeaderStyle_put_ArrowSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowSize(This,size) ) 

#define IGcadMLeaderStyle_get_TextStyle(This,Name)	\
    ( (This)->lpVtbl -> get_TextStyle(This,Name) ) 

#define IGcadMLeaderStyle_put_TextStyle(This,Name)	\
    ( (This)->lpVtbl -> put_TextStyle(This,Name) ) 

#define IGcadMLeaderStyle_get_TextAttachmentDirection(This,dir)	\
    ( (This)->lpVtbl -> get_TextAttachmentDirection(This,dir) ) 

#define IGcadMLeaderStyle_put_TextAttachmentDirection(This,dir)	\
    ( (This)->lpVtbl -> put_TextAttachmentDirection(This,dir) ) 

#define IGcadMLeaderStyle_get_TextLeftAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> get_TextLeftAttachmentType(This,Type) ) 

#define IGcadMLeaderStyle_put_TextLeftAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> put_TextLeftAttachmentType(This,Type) ) 

#define IGcadMLeaderStyle_get_TextRightAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> get_TextRightAttachmentType(This,Type) ) 

#define IGcadMLeaderStyle_put_TextRightAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> put_TextRightAttachmentType(This,Type) ) 

#define IGcadMLeaderStyle_get_TextTopAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> get_TextTopAttachmentType(This,Type) ) 

#define IGcadMLeaderStyle_put_TextTopAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> put_TextTopAttachmentType(This,Type) ) 

#define IGcadMLeaderStyle_get_TextBottomAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> get_TextBottomAttachmentType(This,Type) ) 

#define IGcadMLeaderStyle_put_TextBottomAttachmentType(This,Type)	\
    ( (This)->lpVtbl -> put_TextBottomAttachmentType(This,Type) ) 

#define IGcadMLeaderStyle_get_TextColor(This,color)	\
    ( (This)->lpVtbl -> get_TextColor(This,color) ) 

#define IGcadMLeaderStyle_put_TextColor(This,color)	\
    ( (This)->lpVtbl -> put_TextColor(This,color) ) 

#define IGcadMLeaderStyle_get_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> get_TextHeight(This,Height) ) 

#define IGcadMLeaderStyle_put_TextHeight(This,Height)	\
    ( (This)->lpVtbl -> put_TextHeight(This,Height) ) 

#define IGcadMLeaderStyle_get_EnableFrameText(This,enabled)	\
    ( (This)->lpVtbl -> get_EnableFrameText(This,enabled) ) 

#define IGcadMLeaderStyle_put_EnableFrameText(This,enabled)	\
    ( (This)->lpVtbl -> put_EnableFrameText(This,enabled) ) 

#define IGcadMLeaderStyle_get_AlignSpace(This,AlignSpace)	\
    ( (This)->lpVtbl -> get_AlignSpace(This,AlignSpace) ) 

#define IGcadMLeaderStyle_put_AlignSpace(This,AlignSpace)	\
    ( (This)->lpVtbl -> put_AlignSpace(This,AlignSpace) ) 

#define IGcadMLeaderStyle_get_Block(This,Name)	\
    ( (This)->lpVtbl -> get_Block(This,Name) ) 

#define IGcadMLeaderStyle_put_Block(This,Name)	\
    ( (This)->lpVtbl -> put_Block(This,Name) ) 

#define IGcadMLeaderStyle_get_BlockColor(This,color)	\
    ( (This)->lpVtbl -> get_BlockColor(This,color) ) 

#define IGcadMLeaderStyle_put_BlockColor(This,color)	\
    ( (This)->lpVtbl -> put_BlockColor(This,color) ) 

#define IGcadMLeaderStyle_get_EnableBlockScale(This,enabled)	\
    ( (This)->lpVtbl -> get_EnableBlockScale(This,enabled) ) 

#define IGcadMLeaderStyle_put_EnableBlockScale(This,enabled)	\
    ( (This)->lpVtbl -> put_EnableBlockScale(This,enabled) ) 

#define IGcadMLeaderStyle_get_BlockScale(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_BlockScale(This,ScaleFactor) ) 

#define IGcadMLeaderStyle_put_BlockScale(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_BlockScale(This,ScaleFactor) ) 

#define IGcadMLeaderStyle_get_EnableBlockRotation(This,enabled)	\
    ( (This)->lpVtbl -> get_EnableBlockRotation(This,enabled) ) 

#define IGcadMLeaderStyle_put_EnableBlockRotation(This,enabled)	\
    ( (This)->lpVtbl -> put_EnableBlockRotation(This,enabled) ) 

#define IGcadMLeaderStyle_get_BlockRotation(This,Rotation)	\
    ( (This)->lpVtbl -> get_BlockRotation(This,Rotation) ) 

#define IGcadMLeaderStyle_put_BlockRotation(This,Rotation)	\
    ( (This)->lpVtbl -> put_BlockRotation(This,Rotation) ) 

#define IGcadMLeaderStyle_get_BlockConnectionType(This,Type)	\
    ( (This)->lpVtbl -> get_BlockConnectionType(This,Type) ) 

#define IGcadMLeaderStyle_put_BlockConnectionType(This,Type)	\
    ( (This)->lpVtbl -> put_BlockConnectionType(This,Type) ) 

#define IGcadMLeaderStyle_get_ScaleFactor(This,scale)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,scale) ) 

#define IGcadMLeaderStyle_put_ScaleFactor(This,scale)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,scale) ) 

#define IGcadMLeaderStyle_get_OverwritePropChanged(This,changed)	\
    ( (This)->lpVtbl -> get_OverwritePropChanged(This,changed) ) 

#define IGcadMLeaderStyle_get_Annotative(This,Annotative)	\
    ( (This)->lpVtbl -> get_Annotative(This,Annotative) ) 

#define IGcadMLeaderStyle_put_Annotative(This,Annotative)	\
    ( (This)->lpVtbl -> put_Annotative(This,Annotative) ) 

#define IGcadMLeaderStyle_get_BreakSize(This,size)	\
    ( (This)->lpVtbl -> get_BreakSize(This,size) ) 

#define IGcadMLeaderStyle_put_BreakSize(This,size)	\
    ( (This)->lpVtbl -> put_BreakSize(This,size) ) 

#define IGcadMLeaderStyle_get_TextString(This,Text)	\
    ( (This)->lpVtbl -> get_TextString(This,Text) ) 

#define IGcadMLeaderStyle_put_TextString(This,Text)	\
    ( (This)->lpVtbl -> put_TextString(This,Text) ) 

#define IGcadMLeaderStyle_get_TextAngleType(This,Type)	\
    ( (This)->lpVtbl -> get_TextAngleType(This,Type) ) 

#define IGcadMLeaderStyle_put_TextAngleType(This,Type)	\
    ( (This)->lpVtbl -> put_TextAngleType(This,Type) ) 

#define IGcadMLeaderStyle_get_TextAlignmentType(This,Type)	\
    ( (This)->lpVtbl -> get_TextAlignmentType(This,Type) ) 

#define IGcadMLeaderStyle_put_TextAlignmentType(This,Type)	\
    ( (This)->lpVtbl -> put_TextAlignmentType(This,Type) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadMLeaderStyle_INTERFACE_DEFINED__ */


#ifndef __IGcadShadowDisplay_INTERFACE_DEFINED__
#define __IGcadShadowDisplay_INTERFACE_DEFINED__

/* interface IGcadShadowDisplay */
/* [unique][oleautomation][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadShadowDisplay;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0552FF7C-E7C5-4890-984F-FD499B4B566F")
    IGcadShadowDisplay : public IUnknown
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ShadowDisplay( 
            /* [retval][out] */ GcShadowDisplayType *ShadowDisplay) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ShadowDisplay( 
            /* [in] */ GcShadowDisplayType ShadowDisplay) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableShadowDisplay( 
            /* [retval][out] */ BOOL *ShadowDisplay) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadShadowDisplayVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadShadowDisplay * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadShadowDisplay * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadShadowDisplay * This);
        
        DECLSPEC_XFGVIRT(IGcadShadowDisplay, get_ShadowDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowDisplay )( 
            IGcadShadowDisplay * This,
            /* [retval][out] */ GcShadowDisplayType *ShadowDisplay);
        
        DECLSPEC_XFGVIRT(IGcadShadowDisplay, put_ShadowDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowDisplay )( 
            IGcadShadowDisplay * This,
            /* [in] */ GcShadowDisplayType ShadowDisplay);
        
        DECLSPEC_XFGVIRT(IGcadShadowDisplay, get_EnableShadowDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableShadowDisplay )( 
            IGcadShadowDisplay * This,
            /* [retval][out] */ BOOL *ShadowDisplay);
        
        END_INTERFACE
    } IGcadShadowDisplayVtbl;

    interface IGcadShadowDisplay
    {
        CONST_VTBL struct IGcadShadowDisplayVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadShadowDisplay_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadShadowDisplay_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadShadowDisplay_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadShadowDisplay_get_ShadowDisplay(This,ShadowDisplay)	\
    ( (This)->lpVtbl -> get_ShadowDisplay(This,ShadowDisplay) ) 

#define IGcadShadowDisplay_put_ShadowDisplay(This,ShadowDisplay)	\
    ( (This)->lpVtbl -> put_ShadowDisplay(This,ShadowDisplay) ) 

#define IGcadShadowDisplay_get_EnableShadowDisplay(This,ShadowDisplay)	\
    ( (This)->lpVtbl -> get_EnableShadowDisplay(This,ShadowDisplay) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadShadowDisplay_INTERFACE_DEFINED__ */


#ifndef __IGcadAttributeReference_INTERFACE_DEFINED__
#define __IGcadAttributeReference_INTERFACE_DEFINED__

/* interface IGcadAttributeReference */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadAttributeReference;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("183D30F5-55EB-4409-9FC8-06B66E6578FA")
    IGcadAttributeReference : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalAlignment( 
            /* [retval][out] */ GcHorizontalAlignment *horizAlign) = 0;
        
        virtual /* [helpstring][hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_HorizontalAlignment( 
            /* [in] */ GcHorizontalAlignment horizAlign) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsertionPoint( 
            /* [retval][out] */ VARIANT *insPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_InsertionPoint( 
            /* [in] */ VARIANT insPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ VARIANT *Normal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Normal( 
            /* [in] */ VARIANT Normal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObliqueAngle( 
            /* [retval][out] */ GCAD_ANGLE *obliAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ObliqueAngle( 
            /* [in] */ GCAD_ANGLE obliAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *scalFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor( 
            /* [in] */ GCAD_NOUNITS scalFactor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StyleName( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StyleName( 
            /* [in] */ BSTR Name) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TagString( 
            /* [retval][out] */ BSTR *bstrTag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TagString( 
            /* [in] */ BSTR bstrTag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextAlignmentPoint( 
            /* [retval][out] */ VARIANT *alignPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextAlignmentPoint( 
            /* [in] */ VARIANT alignPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextGenerationFlag( 
            /* [retval][out] */ long *textGenFlag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextGenerationFlag( 
            /* [in] */ long textGenFlag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextString( 
            /* [retval][out] */ BSTR *bstrText) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextString( 
            /* [in] */ BSTR bstrText) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Thickness( 
            /* [retval][out] */ double *Thickness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Thickness( 
            /* [in] */ double Thickness) = 0;
        
        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_VerticalAlignment( 
            /* [retval][out] */ GcVerticalAlignment *vertiAlign) = 0;
        
        virtual /* [helpstring][hidden][propput][id] */ HRESULT STDMETHODCALLTYPE put_VerticalAlignment( 
            /* [in] */ GcVerticalAlignment vertiAlign) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FieldLength( 
            /* [retval][out] */ long *fieldLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FieldLength( 
            /* [in] */ long fieldLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Alignment( 
            /* [retval][out] */ GcAlignment *align) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Alignment( 
            /* [in] */ GcAlignment align) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UpsideDown( 
            /* [retval][out] */ VARIANT_BOOL *bUpsideDown) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UpsideDown( 
            /* [in] */ VARIANT_BOOL bUpsideDown) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Backward( 
            /* [retval][out] */ VARIANT_BOOL *bBackward) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Backward( 
            /* [in] */ VARIANT_BOOL bBackward) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Invisible( 
            /* [retval][out] */ VARIANT_BOOL *bInvisible) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Invisible( 
            /* [in] */ VARIANT_BOOL bInvisible) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Constant( 
            /* [retval][out] */ VARIANT_BOOL *bConstant) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LockPosition( 
            /* [retval][out] */ VARIANT_BOOL *bLockPosition) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MTextAttribute( 
            /* [retval][out] */ VARIANT_BOOL *bMTextAttribute) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MTextAttribute( 
            /* [in] */ VARIANT_BOOL bMTextAttribute) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MTextAttributeContent( 
            /* [retval][out] */ BSTR *content) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MTextAttributeContent( 
            /* [in] */ BSTR content) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UpdateMTextAttribute( void) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MTextBoundaryWidth( 
            /* [retval][out] */ double *boundaryWidth) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MTextBoundaryWidth( 
            double boundaryWidth) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MTextDrawingDirection( 
            /* [retval][out] */ GcDrawingDirection *drawDir) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MTextDrawingDirection( 
            /* [in] */ GcDrawingDirection drawDir) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadAttributeReferenceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadAttributeReference * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadAttributeReference * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadAttributeReference * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadAttributeReference * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadAttributeReference * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadAttributeReference * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadAttributeReference * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadAttributeReference * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadAttributeReference * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadAttributeReference * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadAttributeReference * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadAttributeReference * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadAttributeReference * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadAttributeReference * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadAttributeReference * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadAttributeReference * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadAttributeReference * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadAttributeReference * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadAttributeReference * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadAttributeReference * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadAttributeReference * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadAttributeReference * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadAttributeReference * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadAttributeReference * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadAttributeReference * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_HorizontalAlignment)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalAlignment )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ GcHorizontalAlignment *horizAlign);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_HorizontalAlignment)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HorizontalAlignment )( 
            IGcadAttributeReference * This,
            /* [in] */ GcHorizontalAlignment horizAlign);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_ObliqueAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObliqueAngle )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ GCAD_ANGLE *obliAngle);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_ObliqueAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ObliqueAngle )( 
            IGcadAttributeReference * This,
            /* [in] */ GCAD_ANGLE obliAngle);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadAttributeReference * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ GCAD_NOUNITS *scalFactor);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadAttributeReference * This,
            /* [in] */ GCAD_NOUNITS scalFactor);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_StyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_StyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StyleName )( 
            IGcadAttributeReference * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_TagString)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TagString )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *bstrTag);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_TagString)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TagString )( 
            IGcadAttributeReference * This,
            /* [in] */ BSTR bstrTag);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_TextAlignmentPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextAlignmentPoint )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ VARIANT *alignPoint);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_TextAlignmentPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextAlignmentPoint )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT alignPoint);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_TextGenerationFlag)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextGenerationFlag )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ long *textGenFlag);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_TextGenerationFlag)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextGenerationFlag )( 
            IGcadAttributeReference * This,
            /* [in] */ long textGenFlag);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_TextString)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextString )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_TextString)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextString )( 
            IGcadAttributeReference * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_Thickness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Thickness )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ double *Thickness);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_Thickness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Thickness )( 
            IGcadAttributeReference * This,
            /* [in] */ double Thickness);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_VerticalAlignment)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalAlignment )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ GcVerticalAlignment *vertiAlign);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_VerticalAlignment)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalAlignment )( 
            IGcadAttributeReference * This,
            /* [in] */ GcVerticalAlignment vertiAlign);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_FieldLength)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FieldLength )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ long *fieldLen);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_FieldLength)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FieldLength )( 
            IGcadAttributeReference * This,
            /* [in] */ long fieldLen);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_Alignment)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Alignment )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ GcAlignment *align);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_Alignment)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Alignment )( 
            IGcadAttributeReference * This,
            /* [in] */ GcAlignment align);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_UpsideDown)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UpsideDown )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ VARIANT_BOOL *bUpsideDown);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_UpsideDown)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UpsideDown )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT_BOOL bUpsideDown);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_Backward)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Backward )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ VARIANT_BOOL *bBackward);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_Backward)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Backward )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT_BOOL bBackward);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_Invisible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Invisible )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ VARIANT_BOOL *bInvisible);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_Invisible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Invisible )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT_BOOL bInvisible);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_Constant)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Constant )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ VARIANT_BOOL *bConstant);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_LockPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LockPosition )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ VARIANT_BOOL *bLockPosition);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_MTextAttribute)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MTextAttribute )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ VARIANT_BOOL *bMTextAttribute);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_MTextAttribute)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MTextAttribute )( 
            IGcadAttributeReference * This,
            /* [in] */ VARIANT_BOOL bMTextAttribute);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_MTextAttributeContent)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MTextAttributeContent )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ BSTR *content);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_MTextAttributeContent)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MTextAttributeContent )( 
            IGcadAttributeReference * This,
            /* [in] */ BSTR content);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, UpdateMTextAttribute)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UpdateMTextAttribute )( 
            IGcadAttributeReference * This);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_MTextBoundaryWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MTextBoundaryWidth )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ double *boundaryWidth);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_MTextBoundaryWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MTextBoundaryWidth )( 
            IGcadAttributeReference * This,
            double boundaryWidth);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, get_MTextDrawingDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MTextDrawingDirection )( 
            IGcadAttributeReference * This,
            /* [retval][out] */ GcDrawingDirection *drawDir);
        
        DECLSPEC_XFGVIRT(IGcadAttributeReference, put_MTextDrawingDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MTextDrawingDirection )( 
            IGcadAttributeReference * This,
            /* [in] */ GcDrawingDirection drawDir);
        
        END_INTERFACE
    } IGcadAttributeReferenceVtbl;

    interface IGcadAttributeReference
    {
        CONST_VTBL struct IGcadAttributeReferenceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadAttributeReference_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadAttributeReference_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadAttributeReference_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadAttributeReference_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadAttributeReference_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadAttributeReference_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadAttributeReference_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadAttributeReference_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadAttributeReference_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadAttributeReference_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadAttributeReference_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadAttributeReference_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadAttributeReference_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadAttributeReference_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadAttributeReference_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadAttributeReference_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadAttributeReference_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadAttributeReference_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadAttributeReference_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadAttributeReference_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadAttributeReference_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadAttributeReference_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadAttributeReference_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadAttributeReference_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadAttributeReference_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadAttributeReference_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadAttributeReference_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadAttributeReference_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadAttributeReference_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadAttributeReference_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadAttributeReference_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadAttributeReference_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadAttributeReference_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadAttributeReference_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadAttributeReference_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadAttributeReference_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadAttributeReference_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadAttributeReference_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadAttributeReference_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadAttributeReference_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadAttributeReference_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadAttributeReference_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadAttributeReference_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadAttributeReference_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadAttributeReference_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadAttributeReference_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadAttributeReference_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadAttributeReference_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadAttributeReference_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadAttributeReference_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadAttributeReference_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadAttributeReference_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadAttributeReference_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadAttributeReference_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadAttributeReference_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadAttributeReference_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadAttributeReference_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadAttributeReference_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadAttributeReference_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadAttributeReference_get_HorizontalAlignment(This,horizAlign)	\
    ( (This)->lpVtbl -> get_HorizontalAlignment(This,horizAlign) ) 

#define IGcadAttributeReference_put_HorizontalAlignment(This,horizAlign)	\
    ( (This)->lpVtbl -> put_HorizontalAlignment(This,horizAlign) ) 

#define IGcadAttributeReference_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadAttributeReference_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadAttributeReference_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadAttributeReference_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadAttributeReference_get_ObliqueAngle(This,obliAngle)	\
    ( (This)->lpVtbl -> get_ObliqueAngle(This,obliAngle) ) 

#define IGcadAttributeReference_put_ObliqueAngle(This,obliAngle)	\
    ( (This)->lpVtbl -> put_ObliqueAngle(This,obliAngle) ) 

#define IGcadAttributeReference_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadAttributeReference_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadAttributeReference_get_ScaleFactor(This,scalFactor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,scalFactor) ) 

#define IGcadAttributeReference_put_ScaleFactor(This,scalFactor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,scalFactor) ) 

#define IGcadAttributeReference_get_StyleName(This,Name)	\
    ( (This)->lpVtbl -> get_StyleName(This,Name) ) 

#define IGcadAttributeReference_put_StyleName(This,Name)	\
    ( (This)->lpVtbl -> put_StyleName(This,Name) ) 

#define IGcadAttributeReference_get_TagString(This,bstrTag)	\
    ( (This)->lpVtbl -> get_TagString(This,bstrTag) ) 

#define IGcadAttributeReference_put_TagString(This,bstrTag)	\
    ( (This)->lpVtbl -> put_TagString(This,bstrTag) ) 

#define IGcadAttributeReference_get_TextAlignmentPoint(This,alignPoint)	\
    ( (This)->lpVtbl -> get_TextAlignmentPoint(This,alignPoint) ) 

#define IGcadAttributeReference_put_TextAlignmentPoint(This,alignPoint)	\
    ( (This)->lpVtbl -> put_TextAlignmentPoint(This,alignPoint) ) 

#define IGcadAttributeReference_get_TextGenerationFlag(This,textGenFlag)	\
    ( (This)->lpVtbl -> get_TextGenerationFlag(This,textGenFlag) ) 

#define IGcadAttributeReference_put_TextGenerationFlag(This,textGenFlag)	\
    ( (This)->lpVtbl -> put_TextGenerationFlag(This,textGenFlag) ) 

#define IGcadAttributeReference_get_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextString(This,bstrText) ) 

#define IGcadAttributeReference_put_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextString(This,bstrText) ) 

#define IGcadAttributeReference_get_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> get_Thickness(This,Thickness) ) 

#define IGcadAttributeReference_put_Thickness(This,Thickness)	\
    ( (This)->lpVtbl -> put_Thickness(This,Thickness) ) 

#define IGcadAttributeReference_get_VerticalAlignment(This,vertiAlign)	\
    ( (This)->lpVtbl -> get_VerticalAlignment(This,vertiAlign) ) 

#define IGcadAttributeReference_put_VerticalAlignment(This,vertiAlign)	\
    ( (This)->lpVtbl -> put_VerticalAlignment(This,vertiAlign) ) 

#define IGcadAttributeReference_get_FieldLength(This,fieldLen)	\
    ( (This)->lpVtbl -> get_FieldLength(This,fieldLen) ) 

#define IGcadAttributeReference_put_FieldLength(This,fieldLen)	\
    ( (This)->lpVtbl -> put_FieldLength(This,fieldLen) ) 

#define IGcadAttributeReference_get_Alignment(This,align)	\
    ( (This)->lpVtbl -> get_Alignment(This,align) ) 

#define IGcadAttributeReference_put_Alignment(This,align)	\
    ( (This)->lpVtbl -> put_Alignment(This,align) ) 

#define IGcadAttributeReference_get_UpsideDown(This,bUpsideDown)	\
    ( (This)->lpVtbl -> get_UpsideDown(This,bUpsideDown) ) 

#define IGcadAttributeReference_put_UpsideDown(This,bUpsideDown)	\
    ( (This)->lpVtbl -> put_UpsideDown(This,bUpsideDown) ) 

#define IGcadAttributeReference_get_Backward(This,bBackward)	\
    ( (This)->lpVtbl -> get_Backward(This,bBackward) ) 

#define IGcadAttributeReference_put_Backward(This,bBackward)	\
    ( (This)->lpVtbl -> put_Backward(This,bBackward) ) 

#define IGcadAttributeReference_get_Invisible(This,bInvisible)	\
    ( (This)->lpVtbl -> get_Invisible(This,bInvisible) ) 

#define IGcadAttributeReference_put_Invisible(This,bInvisible)	\
    ( (This)->lpVtbl -> put_Invisible(This,bInvisible) ) 

#define IGcadAttributeReference_get_Constant(This,bConstant)	\
    ( (This)->lpVtbl -> get_Constant(This,bConstant) ) 

#define IGcadAttributeReference_get_LockPosition(This,bLockPosition)	\
    ( (This)->lpVtbl -> get_LockPosition(This,bLockPosition) ) 

#define IGcadAttributeReference_get_MTextAttribute(This,bMTextAttribute)	\
    ( (This)->lpVtbl -> get_MTextAttribute(This,bMTextAttribute) ) 

#define IGcadAttributeReference_put_MTextAttribute(This,bMTextAttribute)	\
    ( (This)->lpVtbl -> put_MTextAttribute(This,bMTextAttribute) ) 

#define IGcadAttributeReference_get_MTextAttributeContent(This,content)	\
    ( (This)->lpVtbl -> get_MTextAttributeContent(This,content) ) 

#define IGcadAttributeReference_put_MTextAttributeContent(This,content)	\
    ( (This)->lpVtbl -> put_MTextAttributeContent(This,content) ) 

#define IGcadAttributeReference_UpdateMTextAttribute(This)	\
    ( (This)->lpVtbl -> UpdateMTextAttribute(This) ) 

#define IGcadAttributeReference_get_MTextBoundaryWidth(This,boundaryWidth)	\
    ( (This)->lpVtbl -> get_MTextBoundaryWidth(This,boundaryWidth) ) 

#define IGcadAttributeReference_put_MTextBoundaryWidth(This,boundaryWidth)	\
    ( (This)->lpVtbl -> put_MTextBoundaryWidth(This,boundaryWidth) ) 

#define IGcadAttributeReference_get_MTextDrawingDirection(This,drawDir)	\
    ( (This)->lpVtbl -> get_MTextDrawingDirection(This,drawDir) ) 

#define IGcadAttributeReference_put_MTextDrawingDirection(This,drawDir)	\
    ( (This)->lpVtbl -> put_MTextDrawingDirection(This,drawDir) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadAttributeReference_INTERFACE_DEFINED__ */


#ifndef __IGcadSubEntity_INTERFACE_DEFINED__
#define __IGcadSubEntity_INTERFACE_DEFINED__

/* interface IGcadSubEntity */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadSubEntity;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0698CFEE-C299-478B-BF97-D239D7CA7AA6")
    IGcadSubEntity : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE OnModified( void) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ObjectName( 
            /* [retval][out] */ BSTR *ObjectName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Color( 
            /* [retval][out] */ IGcadGcCmColor **pColor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Color( 
            /* [in] */ IGcadGcCmColor *pColor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Layer( 
            /* [retval][out] */ BSTR *Layer) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Linetype( 
            /* [retval][out] */ BSTR *Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LinetypeScale( 
            /* [retval][out] */ GCAD_NOUNITS *ltScale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PlotStyleName( 
            /* [retval][out] */ BSTR *plotStyle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Lineweight( 
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Hyperlinks( 
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSubEntityVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSubEntity * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSubEntity * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSubEntity * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSubEntity * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSubEntity * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSubEntity * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSubEntity * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, OnModified)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OnModified )( 
            IGcadSubEntity * This);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSubEntity * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Color)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSubEntity * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, put_Color)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSubEntity * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSubEntity * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSubEntity * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSubEntity * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSubEntity * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSubEntity * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSubEntity * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        END_INTERFACE
    } IGcadSubEntityVtbl;

    interface IGcadSubEntity
    {
        CONST_VTBL struct IGcadSubEntityVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSubEntity_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSubEntity_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSubEntity_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSubEntity_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSubEntity_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSubEntity_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSubEntity_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSubEntity_OnModified(This)	\
    ( (This)->lpVtbl -> OnModified(This) ) 

#define IGcadSubEntity_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSubEntity_get_Color(This,pColor)	\
    ( (This)->lpVtbl -> get_Color(This,pColor) ) 

#define IGcadSubEntity_put_Color(This,pColor)	\
    ( (This)->lpVtbl -> put_Color(This,pColor) ) 

#define IGcadSubEntity_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSubEntity_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSubEntity_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSubEntity_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSubEntity_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSubEntity_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSubEntity_INTERFACE_DEFINED__ */


#ifndef __IGcadMLeaderLeader_INTERFACE_DEFINED__
#define __IGcadMLeaderLeader_INTERFACE_DEFINED__

/* interface IGcadMLeaderLeader */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadMLeaderLeader;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("49FC75A0-F7C1-45DE-9371-FB86B4690D84")
    IGcadMLeaderLeader : public IGcadSubEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderType( 
            /* [retval][out] */ GcMLeaderType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderType( 
            /* [in] */ GcMLeaderType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderLineColor( 
            /* [retval][out] */ IGcadGcCmColor **Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLineColor( 
            /* [in] */ IGcadGcCmColor *Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderLinetype( 
            /* [retval][out] */ GCAD_LTYPE *Linetype) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLinetype( 
            /* [in] */ GCAD_LTYPE Linetype) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LeaderLineWeight( 
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LeaderLineWeight( 
            /* [in] */ GCAD_LWEIGHT Lineweight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadType( 
            /* [retval][out] */ GcDimArrowheadType *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadType( 
            /* [in] */ GcDimArrowheadType BlockName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadSize( 
            /* [retval][out] */ double *size) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadSize( 
            /* [in] */ double size) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ArrowheadBlock( 
            /* [retval][out] */ BSTR *BlockName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ArrowheadBlock( 
            /* [in] */ BSTR BlockName) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadMLeaderLeaderVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadMLeaderLeader * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadMLeaderLeader * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadMLeaderLeader * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadMLeaderLeader * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadMLeaderLeader * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadMLeaderLeader * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadMLeaderLeader * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, OnModified)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OnModified )( 
            IGcadMLeaderLeader * This);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Color)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, put_Color)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadMLeaderLeader * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, get_LeaderType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderType )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ GcMLeaderType *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, put_LeaderType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderType )( 
            IGcadMLeaderLeader * This,
            /* [in] */ GcMLeaderType Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, get_LeaderLineColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderLineColor )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ IGcadGcCmColor **Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, put_LeaderLineColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLineColor )( 
            IGcadMLeaderLeader * This,
            /* [in] */ IGcadGcCmColor *Type);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, get_LeaderLinetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderLinetype )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ GCAD_LTYPE *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, put_LeaderLinetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLinetype )( 
            IGcadMLeaderLeader * This,
            /* [in] */ GCAD_LTYPE Linetype);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, get_LeaderLineWeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LeaderLineWeight )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, put_LeaderLineWeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LeaderLineWeight )( 
            IGcadMLeaderLeader * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, get_ArrowheadType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadType )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ GcDimArrowheadType *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, put_ArrowheadType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadType )( 
            IGcadMLeaderLeader * This,
            /* [in] */ GcDimArrowheadType BlockName);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, get_ArrowheadSize)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadSize )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ double *size);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, put_ArrowheadSize)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadSize )( 
            IGcadMLeaderLeader * This,
            /* [in] */ double size);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, get_ArrowheadBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ArrowheadBlock )( 
            IGcadMLeaderLeader * This,
            /* [retval][out] */ BSTR *BlockName);
        
        DECLSPEC_XFGVIRT(IGcadMLeaderLeader, put_ArrowheadBlock)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ArrowheadBlock )( 
            IGcadMLeaderLeader * This,
            /* [in] */ BSTR BlockName);
        
        END_INTERFACE
    } IGcadMLeaderLeaderVtbl;

    interface IGcadMLeaderLeader
    {
        CONST_VTBL struct IGcadMLeaderLeaderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadMLeaderLeader_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadMLeaderLeader_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadMLeaderLeader_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadMLeaderLeader_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadMLeaderLeader_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadMLeaderLeader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadMLeaderLeader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadMLeaderLeader_OnModified(This)	\
    ( (This)->lpVtbl -> OnModified(This) ) 

#define IGcadMLeaderLeader_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadMLeaderLeader_get_Color(This,pColor)	\
    ( (This)->lpVtbl -> get_Color(This,pColor) ) 

#define IGcadMLeaderLeader_put_Color(This,pColor)	\
    ( (This)->lpVtbl -> put_Color(This,pColor) ) 

#define IGcadMLeaderLeader_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadMLeaderLeader_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadMLeaderLeader_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadMLeaderLeader_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadMLeaderLeader_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadMLeaderLeader_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 


#define IGcadMLeaderLeader_get_LeaderType(This,Type)	\
    ( (This)->lpVtbl -> get_LeaderType(This,Type) ) 

#define IGcadMLeaderLeader_put_LeaderType(This,Type)	\
    ( (This)->lpVtbl -> put_LeaderType(This,Type) ) 

#define IGcadMLeaderLeader_get_LeaderLineColor(This,Type)	\
    ( (This)->lpVtbl -> get_LeaderLineColor(This,Type) ) 

#define IGcadMLeaderLeader_put_LeaderLineColor(This,Type)	\
    ( (This)->lpVtbl -> put_LeaderLineColor(This,Type) ) 

#define IGcadMLeaderLeader_get_LeaderLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_LeaderLinetype(This,Linetype) ) 

#define IGcadMLeaderLeader_put_LeaderLinetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_LeaderLinetype(This,Linetype) ) 

#define IGcadMLeaderLeader_get_LeaderLineWeight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_LeaderLineWeight(This,Lineweight) ) 

#define IGcadMLeaderLeader_put_LeaderLineWeight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_LeaderLineWeight(This,Lineweight) ) 

#define IGcadMLeaderLeader_get_ArrowheadType(This,BlockName)	\
    ( (This)->lpVtbl -> get_ArrowheadType(This,BlockName) ) 

#define IGcadMLeaderLeader_put_ArrowheadType(This,BlockName)	\
    ( (This)->lpVtbl -> put_ArrowheadType(This,BlockName) ) 

#define IGcadMLeaderLeader_get_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> get_ArrowheadSize(This,size) ) 

#define IGcadMLeaderLeader_put_ArrowheadSize(This,size)	\
    ( (This)->lpVtbl -> put_ArrowheadSize(This,size) ) 

#define IGcadMLeaderLeader_get_ArrowheadBlock(This,BlockName)	\
    ( (This)->lpVtbl -> get_ArrowheadBlock(This,BlockName) ) 

#define IGcadMLeaderLeader_put_ArrowheadBlock(This,BlockName)	\
    ( (This)->lpVtbl -> put_ArrowheadBlock(This,BlockName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadMLeaderLeader_INTERFACE_DEFINED__ */


#ifndef __IGcadComparedReference_INTERFACE_DEFINED__
#define __IGcadComparedReference_INTERFACE_DEFINED__

/* interface IGcadComparedReference */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadComparedReference;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1789E342-9782-417C-A66C-4F1A1F9F4481")
    IGcadComparedReference : public IGcadExternalReference
    {
    public:
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadComparedReferenceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadComparedReference * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadComparedReference * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadComparedReference * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadComparedReference * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadComparedReference * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadComparedReference * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadComparedReference * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadComparedReference * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadComparedReference * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadComparedReference * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadComparedReference * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadComparedReference * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadComparedReference * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadComparedReference * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadComparedReference * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadComparedReference * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadComparedReference * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadComparedReference * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadComparedReference * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadComparedReference * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadComparedReference * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadComparedReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadComparedReference * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadComparedReference * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadComparedReference * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadComparedReference * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadComparedReference * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadComparedReference * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadComparedReference * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadComparedReference * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadComparedReference * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadComparedReference * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadComparedReference * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadComparedReference * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadComparedReference * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadComparedReference * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadComparedReference * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadComparedReference * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadComparedReference * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadComparedReference * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadComparedReference * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadComparedReference * This,
            /* [retval][out] */ VARIANT *Normal);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Normal)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Normal )( 
            IGcadComparedReference * This,
            /* [in] */ VARIANT Normal);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadComparedReference * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadComparedReference * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_XScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XScaleFactor )( 
            IGcadComparedReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_XScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XScaleFactor )( 
            IGcadComparedReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_YScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_YScaleFactor )( 
            IGcadComparedReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_YScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_YScaleFactor )( 
            IGcadComparedReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_ZScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ZScaleFactor )( 
            IGcadComparedReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_ZScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ZScaleFactor )( 
            IGcadComparedReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, Explode)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Explode )( 
            IGcadComparedReference * This,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetAttributes)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAttributes )( 
            IGcadComparedReference * This,
            /* [retval][out] */ VARIANT *pAttrObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetConstantAttributes)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConstantAttributes )( 
            IGcadComparedReference * This,
            /* [retval][out] */ VARIANT *pAttrObjs);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_HasAttributes)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasAttributes )( 
            IGcadComparedReference * This,
            /* [retval][out] */ VARIANT_BOOL *bHas);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_EffectiveName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EffectiveName )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *EffectiveName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_IsDynamicBlock)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsDynamicBlock )( 
            IGcadComparedReference * This,
            /* [retval][out] */ VARIANT_BOOL *pDynamicBlock);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, GetDynamicBlockProperties)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDynamicBlockProperties )( 
            IGcadComparedReference * This,
            /* [retval][out] */ VARIANT *dynamicPropertyArray);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ResetBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ResetBlock )( 
            IGcadComparedReference * This);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ConvertToAnonymousBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConvertToAnonymousBlock )( 
            IGcadComparedReference * This);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, ConvertToStaticBlock)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConvertToStaticBlock )( 
            IGcadComparedReference * This,
            /* [in] */ BSTR newBlockName);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_XEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_XEffectiveScaleFactor )( 
            IGcadComparedReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_XEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_XEffectiveScaleFactor )( 
            IGcadComparedReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_YEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_YEffectiveScaleFactor )( 
            IGcadComparedReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_YEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_YEffectiveScaleFactor )( 
            IGcadComparedReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_ZEffectiveScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ZEffectiveScaleFactor )( 
            IGcadComparedReference * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, put_ZEffectiveScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ZEffectiveScaleFactor )( 
            IGcadComparedReference * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsUnits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsUnits )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *Units);
        
        DECLSPEC_XFGVIRT(IGcadBlockReference, get_InsUnitsFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsUnitsFactor )( 
            IGcadComparedReference * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadExternalReference, get_Path)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            IGcadComparedReference * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadExternalReference, put_Path)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Path )( 
            IGcadComparedReference * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadExternalReference, get_LayerPropertyOverrides)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LayerPropertyOverrides )( 
            IGcadComparedReference * This,
            /* [retval][out] */ VARIANT_BOOL *bOverrides);
        
        END_INTERFACE
    } IGcadComparedReferenceVtbl;

    interface IGcadComparedReference
    {
        CONST_VTBL struct IGcadComparedReferenceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadComparedReference_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadComparedReference_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadComparedReference_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadComparedReference_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadComparedReference_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadComparedReference_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadComparedReference_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadComparedReference_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadComparedReference_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadComparedReference_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadComparedReference_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadComparedReference_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadComparedReference_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadComparedReference_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadComparedReference_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadComparedReference_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadComparedReference_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadComparedReference_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadComparedReference_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadComparedReference_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadComparedReference_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadComparedReference_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadComparedReference_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadComparedReference_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadComparedReference_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadComparedReference_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadComparedReference_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadComparedReference_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadComparedReference_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadComparedReference_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadComparedReference_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadComparedReference_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadComparedReference_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadComparedReference_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadComparedReference_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadComparedReference_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadComparedReference_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadComparedReference_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadComparedReference_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadComparedReference_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadComparedReference_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadComparedReference_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadComparedReference_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadComparedReference_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadComparedReference_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadComparedReference_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadComparedReference_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadComparedReference_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadComparedReference_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadComparedReference_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadComparedReference_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadComparedReference_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadComparedReference_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadComparedReference_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadComparedReference_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadComparedReference_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadComparedReference_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadComparedReference_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadComparedReference_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadComparedReference_get_Name(This,bstrName)	\
    ( (This)->lpVtbl -> get_Name(This,bstrName) ) 

#define IGcadComparedReference_put_Name(This,bstrName)	\
    ( (This)->lpVtbl -> put_Name(This,bstrName) ) 

#define IGcadComparedReference_get_Normal(This,Normal)	\
    ( (This)->lpVtbl -> get_Normal(This,Normal) ) 

#define IGcadComparedReference_put_Normal(This,Normal)	\
    ( (This)->lpVtbl -> put_Normal(This,Normal) ) 

#define IGcadComparedReference_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadComparedReference_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadComparedReference_get_XScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_XScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_put_XScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_XScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_get_YScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_YScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_put_YScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_YScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_get_ZScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ZScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_put_ZScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ZScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_Explode(This,pArrayObjs)	\
    ( (This)->lpVtbl -> Explode(This,pArrayObjs) ) 

#define IGcadComparedReference_GetAttributes(This,pAttrObjs)	\
    ( (This)->lpVtbl -> GetAttributes(This,pAttrObjs) ) 

#define IGcadComparedReference_GetConstantAttributes(This,pAttrObjs)	\
    ( (This)->lpVtbl -> GetConstantAttributes(This,pAttrObjs) ) 

#define IGcadComparedReference_get_HasAttributes(This,bHas)	\
    ( (This)->lpVtbl -> get_HasAttributes(This,bHas) ) 

#define IGcadComparedReference_get_EffectiveName(This,EffectiveName)	\
    ( (This)->lpVtbl -> get_EffectiveName(This,EffectiveName) ) 

#define IGcadComparedReference_get_IsDynamicBlock(This,pDynamicBlock)	\
    ( (This)->lpVtbl -> get_IsDynamicBlock(This,pDynamicBlock) ) 

#define IGcadComparedReference_GetDynamicBlockProperties(This,dynamicPropertyArray)	\
    ( (This)->lpVtbl -> GetDynamicBlockProperties(This,dynamicPropertyArray) ) 

#define IGcadComparedReference_ResetBlock(This)	\
    ( (This)->lpVtbl -> ResetBlock(This) ) 

#define IGcadComparedReference_ConvertToAnonymousBlock(This)	\
    ( (This)->lpVtbl -> ConvertToAnonymousBlock(This) ) 

#define IGcadComparedReference_ConvertToStaticBlock(This,newBlockName)	\
    ( (This)->lpVtbl -> ConvertToStaticBlock(This,newBlockName) ) 

#define IGcadComparedReference_get_XEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_XEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_put_XEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_XEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_get_YEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_YEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_put_YEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_YEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_get_ZEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ZEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_put_ZEffectiveScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ZEffectiveScaleFactor(This,ScaleFactor) ) 

#define IGcadComparedReference_get_InsUnits(This,Units)	\
    ( (This)->lpVtbl -> get_InsUnits(This,Units) ) 

#define IGcadComparedReference_get_InsUnitsFactor(This,factor)	\
    ( (This)->lpVtbl -> get_InsUnitsFactor(This,factor) ) 


#define IGcadComparedReference_get_Path(This,bstrName)	\
    ( (This)->lpVtbl -> get_Path(This,bstrName) ) 

#define IGcadComparedReference_put_Path(This,bstrName)	\
    ( (This)->lpVtbl -> put_Path(This,bstrName) ) 

#define IGcadComparedReference_get_LayerPropertyOverrides(This,bOverrides)	\
    ( (This)->lpVtbl -> get_LayerPropertyOverrides(This,bOverrides) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadComparedReference_INTERFACE_DEFINED__ */


#ifndef __IGcadOle_INTERFACE_DEFINED__
#define __IGcadOle_INTERFACE_DEFINED__

/* interface IGcadOle */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadOle;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("75419B16-46F2-4245-A624-7819E87EEA8A")
    IGcadOle : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsertionPoint( 
            /* [retval][out] */ VARIANT *insPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_InsertionPoint( 
            /* [in] */ VARIANT insPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *rot) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE rot) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Width( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleWidth( 
            /* [retval][out] */ double *swidth) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleWidth( 
            /* [in] */ double swidth) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleHeight( 
            /* [retval][out] */ double *sheight) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleHeight( 
            /* [in] */ double sheight) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LockAspectRatio( 
            /* [retval][out] */ VARIANT_BOOL *aspect) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LockAspectRatio( 
            /* [in] */ VARIANT_BOOL aspect) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_OleItemType( 
            /* [retval][out] */ GcOleType *pType) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_OleItemType( 
            /* [in] */ GcOleType pType) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_OlePlotQuality( 
            /* [retval][out] */ GcOlePlotQuality *pPQuality) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_OlePlotQuality( 
            /* [in] */ GcOlePlotQuality pPQuality) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_OleSourceApp( 
            /* [retval][out] */ BSTR *srcApp) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_OleSourceApp( 
            /* [in] */ BSTR srcApp) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadOleVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadOle * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadOle * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadOle * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadOle * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadOle * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadOle * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadOle * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadOle * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadOle * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadOle * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadOle * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadOle * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadOle * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadOle * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadOle * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadOle * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadOle * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadOle * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadOle * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadOle * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadOle * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadOle * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadOle * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadOle * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadOle * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadOle * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadOle * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadOle * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadOle * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadOle * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadOle * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadOle * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadOle * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadOle * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadOle * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadOle * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadOle * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadOle * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadOle * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadOle * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadOle * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadOle * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadOle * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadOle * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadOle * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadOle * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadOle * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadOle * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadOle * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadOle * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadOle * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadOle * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadOle * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadOle * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadOle * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadOle * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadOle * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadOle, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadOle * This,
            /* [retval][out] */ VARIANT *insPoint);
        
        DECLSPEC_XFGVIRT(IGcadOle, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadOle * This,
            /* [in] */ VARIANT insPoint);
        
        DECLSPEC_XFGVIRT(IGcadOle, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadOle * This,
            /* [retval][out] */ GCAD_ANGLE *rot);
        
        DECLSPEC_XFGVIRT(IGcadOle, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadOle * This,
            /* [in] */ GCAD_ANGLE rot);
        
        DECLSPEC_XFGVIRT(IGcadOle, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadOle * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadOle, put_Width)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( 
            IGcadOle * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadOle, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadOle * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadOle, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadOle * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadOle, get_ScaleWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleWidth )( 
            IGcadOle * This,
            /* [retval][out] */ double *swidth);
        
        DECLSPEC_XFGVIRT(IGcadOle, put_ScaleWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleWidth )( 
            IGcadOle * This,
            /* [in] */ double swidth);
        
        DECLSPEC_XFGVIRT(IGcadOle, get_ScaleHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleHeight )( 
            IGcadOle * This,
            /* [retval][out] */ double *sheight);
        
        DECLSPEC_XFGVIRT(IGcadOle, put_ScaleHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleHeight )( 
            IGcadOle * This,
            /* [in] */ double sheight);
        
        DECLSPEC_XFGVIRT(IGcadOle, get_LockAspectRatio)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LockAspectRatio )( 
            IGcadOle * This,
            /* [retval][out] */ VARIANT_BOOL *aspect);
        
        DECLSPEC_XFGVIRT(IGcadOle, put_LockAspectRatio)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LockAspectRatio )( 
            IGcadOle * This,
            /* [in] */ VARIANT_BOOL aspect);
        
        DECLSPEC_XFGVIRT(IGcadOle, get_OleItemType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OleItemType )( 
            IGcadOle * This,
            /* [retval][out] */ GcOleType *pType);
        
        DECLSPEC_XFGVIRT(IGcadOle, put_OleItemType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_OleItemType )( 
            IGcadOle * This,
            /* [in] */ GcOleType pType);
        
        DECLSPEC_XFGVIRT(IGcadOle, get_OlePlotQuality)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OlePlotQuality )( 
            IGcadOle * This,
            /* [retval][out] */ GcOlePlotQuality *pPQuality);
        
        DECLSPEC_XFGVIRT(IGcadOle, put_OlePlotQuality)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_OlePlotQuality )( 
            IGcadOle * This,
            /* [in] */ GcOlePlotQuality pPQuality);
        
        DECLSPEC_XFGVIRT(IGcadOle, get_OleSourceApp)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OleSourceApp )( 
            IGcadOle * This,
            /* [retval][out] */ BSTR *srcApp);
        
        DECLSPEC_XFGVIRT(IGcadOle, put_OleSourceApp)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_OleSourceApp )( 
            IGcadOle * This,
            /* [in] */ BSTR srcApp);
        
        END_INTERFACE
    } IGcadOleVtbl;

    interface IGcadOle
    {
        CONST_VTBL struct IGcadOleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadOle_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadOle_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadOle_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadOle_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadOle_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadOle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadOle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadOle_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadOle_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadOle_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadOle_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadOle_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadOle_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadOle_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadOle_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadOle_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadOle_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadOle_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadOle_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadOle_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadOle_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadOle_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadOle_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadOle_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadOle_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadOle_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadOle_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadOle_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadOle_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadOle_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadOle_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadOle_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadOle_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadOle_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadOle_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadOle_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadOle_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadOle_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadOle_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadOle_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadOle_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadOle_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadOle_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadOle_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadOle_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadOle_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadOle_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadOle_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadOle_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadOle_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadOle_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadOle_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadOle_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadOle_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadOle_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadOle_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadOle_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadOle_get_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,insPoint) ) 

#define IGcadOle_put_InsertionPoint(This,insPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,insPoint) ) 

#define IGcadOle_get_Rotation(This,rot)	\
    ( (This)->lpVtbl -> get_Rotation(This,rot) ) 

#define IGcadOle_put_Rotation(This,rot)	\
    ( (This)->lpVtbl -> put_Rotation(This,rot) ) 

#define IGcadOle_get_Width(This,Width)	\
    ( (This)->lpVtbl -> get_Width(This,Width) ) 

#define IGcadOle_put_Width(This,Width)	\
    ( (This)->lpVtbl -> put_Width(This,Width) ) 

#define IGcadOle_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadOle_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadOle_get_ScaleWidth(This,swidth)	\
    ( (This)->lpVtbl -> get_ScaleWidth(This,swidth) ) 

#define IGcadOle_put_ScaleWidth(This,swidth)	\
    ( (This)->lpVtbl -> put_ScaleWidth(This,swidth) ) 

#define IGcadOle_get_ScaleHeight(This,sheight)	\
    ( (This)->lpVtbl -> get_ScaleHeight(This,sheight) ) 

#define IGcadOle_put_ScaleHeight(This,sheight)	\
    ( (This)->lpVtbl -> put_ScaleHeight(This,sheight) ) 

#define IGcadOle_get_LockAspectRatio(This,aspect)	\
    ( (This)->lpVtbl -> get_LockAspectRatio(This,aspect) ) 

#define IGcadOle_put_LockAspectRatio(This,aspect)	\
    ( (This)->lpVtbl -> put_LockAspectRatio(This,aspect) ) 

#define IGcadOle_get_OleItemType(This,pType)	\
    ( (This)->lpVtbl -> get_OleItemType(This,pType) ) 

#define IGcadOle_put_OleItemType(This,pType)	\
    ( (This)->lpVtbl -> put_OleItemType(This,pType) ) 

#define IGcadOle_get_OlePlotQuality(This,pPQuality)	\
    ( (This)->lpVtbl -> get_OlePlotQuality(This,pPQuality) ) 

#define IGcadOle_put_OlePlotQuality(This,pPQuality)	\
    ( (This)->lpVtbl -> put_OlePlotQuality(This,pPQuality) ) 

#define IGcadOle_get_OleSourceApp(This,srcApp)	\
    ( (This)->lpVtbl -> get_OleSourceApp(This,srcApp) ) 

#define IGcadOle_put_OleSourceApp(This,srcApp)	\
    ( (This)->lpVtbl -> put_OleSourceApp(This,srcApp) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadOle_INTERFACE_DEFINED__ */


#ifndef __IGcadHelix_INTERFACE_DEFINED__
#define __IGcadHelix_INTERFACE_DEFINED__

/* interface IGcadHelix */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadHelix;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4A201B9C-6555-45ED-A3B5-9342F2F28D71")
    IGcadHelix : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Position( 
            /* [retval][out] */ VARIANT *StartPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Position( 
            /* [in] */ VARIANT StartPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Constrain( 
            /* [retval][out] */ GcHelixConstrainType *constrainType) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Constrain( 
            /* [in] */ GcHelixConstrainType constrainType) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Length) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Length) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Turns( 
            /* [retval][out] */ GCAD_NOUNITS *Turns) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Turns( 
            /* [in] */ GCAD_NOUNITS Turns) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TurnHeight( 
            /* [retval][out] */ double *Distance) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TurnHeight( 
            /* [in] */ double Distance) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BaseRadius( 
            /* [retval][out] */ double *Radius) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BaseRadius( 
            /* [in] */ double Radius) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TopRadius( 
            /* [retval][out] */ double *Radius) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TopRadius( 
            /* [in] */ double Radius) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Twist( 
            /* [retval][out] */ GcHelixTwistType *twistType) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Twist( 
            /* [in] */ GcHelixTwistType twistType) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TurnSlope( 
            /* [retval][out] */ GCAD_ANGLE *slopeAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TotalLength( 
            /* [retval][out] */ double *TotalLength) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadHelixVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadHelix * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadHelix * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadHelix * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadHelix * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadHelix * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadHelix * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadHelix * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadHelix * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadHelix * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadHelix * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadHelix * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadHelix * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadHelix * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadHelix * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadHelix * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadHelix * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadHelix * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadHelix * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadHelix * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadHelix * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadHelix * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadHelix * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadHelix * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadHelix * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadHelix * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadHelix * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadHelix * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadHelix * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadHelix * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadHelix * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadHelix * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadHelix * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadHelix * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadHelix * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadHelix * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadHelix * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadHelix * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadHelix * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadHelix * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadHelix * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadHelix * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadHelix * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadHelix * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadHelix * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadHelix * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadHelix * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadHelix * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadHelix * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadHelix * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadHelix * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadHelix * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadHelix * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadHelix * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadHelix * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadHelix * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadHelix * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadHelix * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadHelix, get_Position)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Position )( 
            IGcadHelix * This,
            /* [retval][out] */ VARIANT *StartPoint);
        
        DECLSPEC_XFGVIRT(IGcadHelix, put_Position)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Position )( 
            IGcadHelix * This,
            /* [in] */ VARIANT StartPoint);
        
        DECLSPEC_XFGVIRT(IGcadHelix, get_Constrain)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Constrain )( 
            IGcadHelix * This,
            /* [retval][out] */ GcHelixConstrainType *constrainType);
        
        DECLSPEC_XFGVIRT(IGcadHelix, put_Constrain)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Constrain )( 
            IGcadHelix * This,
            /* [in] */ GcHelixConstrainType constrainType);
        
        DECLSPEC_XFGVIRT(IGcadHelix, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadHelix * This,
            /* [retval][out] */ double *Length);
        
        DECLSPEC_XFGVIRT(IGcadHelix, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadHelix * This,
            /* [in] */ double Length);
        
        DECLSPEC_XFGVIRT(IGcadHelix, get_Turns)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Turns )( 
            IGcadHelix * This,
            /* [retval][out] */ GCAD_NOUNITS *Turns);
        
        DECLSPEC_XFGVIRT(IGcadHelix, put_Turns)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Turns )( 
            IGcadHelix * This,
            /* [in] */ GCAD_NOUNITS Turns);
        
        DECLSPEC_XFGVIRT(IGcadHelix, get_TurnHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TurnHeight )( 
            IGcadHelix * This,
            /* [retval][out] */ double *Distance);
        
        DECLSPEC_XFGVIRT(IGcadHelix, put_TurnHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TurnHeight )( 
            IGcadHelix * This,
            /* [in] */ double Distance);
        
        DECLSPEC_XFGVIRT(IGcadHelix, get_BaseRadius)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BaseRadius )( 
            IGcadHelix * This,
            /* [retval][out] */ double *Radius);
        
        DECLSPEC_XFGVIRT(IGcadHelix, put_BaseRadius)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BaseRadius )( 
            IGcadHelix * This,
            /* [in] */ double Radius);
        
        DECLSPEC_XFGVIRT(IGcadHelix, get_TopRadius)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TopRadius )( 
            IGcadHelix * This,
            /* [retval][out] */ double *Radius);
        
        DECLSPEC_XFGVIRT(IGcadHelix, put_TopRadius)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TopRadius )( 
            IGcadHelix * This,
            /* [in] */ double Radius);
        
        DECLSPEC_XFGVIRT(IGcadHelix, get_Twist)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Twist )( 
            IGcadHelix * This,
            /* [retval][out] */ GcHelixTwistType *twistType);
        
        DECLSPEC_XFGVIRT(IGcadHelix, put_Twist)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Twist )( 
            IGcadHelix * This,
            /* [in] */ GcHelixTwistType twistType);
        
        DECLSPEC_XFGVIRT(IGcadHelix, get_TurnSlope)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TurnSlope )( 
            IGcadHelix * This,
            /* [retval][out] */ GCAD_ANGLE *slopeAngle);
        
        DECLSPEC_XFGVIRT(IGcadHelix, get_TotalLength)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TotalLength )( 
            IGcadHelix * This,
            /* [retval][out] */ double *TotalLength);
        
        END_INTERFACE
    } IGcadHelixVtbl;

    interface IGcadHelix
    {
        CONST_VTBL struct IGcadHelixVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadHelix_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadHelix_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadHelix_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadHelix_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadHelix_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadHelix_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadHelix_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadHelix_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadHelix_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadHelix_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadHelix_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadHelix_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadHelix_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadHelix_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadHelix_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadHelix_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadHelix_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadHelix_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadHelix_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadHelix_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadHelix_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadHelix_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadHelix_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadHelix_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadHelix_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadHelix_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadHelix_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadHelix_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadHelix_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadHelix_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadHelix_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadHelix_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadHelix_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadHelix_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadHelix_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadHelix_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadHelix_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadHelix_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadHelix_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadHelix_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadHelix_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadHelix_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadHelix_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadHelix_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadHelix_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadHelix_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadHelix_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadHelix_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadHelix_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadHelix_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadHelix_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadHelix_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadHelix_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadHelix_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadHelix_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadHelix_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadHelix_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadHelix_get_Position(This,StartPoint)	\
    ( (This)->lpVtbl -> get_Position(This,StartPoint) ) 

#define IGcadHelix_put_Position(This,StartPoint)	\
    ( (This)->lpVtbl -> put_Position(This,StartPoint) ) 

#define IGcadHelix_get_Constrain(This,constrainType)	\
    ( (This)->lpVtbl -> get_Constrain(This,constrainType) ) 

#define IGcadHelix_put_Constrain(This,constrainType)	\
    ( (This)->lpVtbl -> put_Constrain(This,constrainType) ) 

#define IGcadHelix_get_Height(This,Length)	\
    ( (This)->lpVtbl -> get_Height(This,Length) ) 

#define IGcadHelix_put_Height(This,Length)	\
    ( (This)->lpVtbl -> put_Height(This,Length) ) 

#define IGcadHelix_get_Turns(This,Turns)	\
    ( (This)->lpVtbl -> get_Turns(This,Turns) ) 

#define IGcadHelix_put_Turns(This,Turns)	\
    ( (This)->lpVtbl -> put_Turns(This,Turns) ) 

#define IGcadHelix_get_TurnHeight(This,Distance)	\
    ( (This)->lpVtbl -> get_TurnHeight(This,Distance) ) 

#define IGcadHelix_put_TurnHeight(This,Distance)	\
    ( (This)->lpVtbl -> put_TurnHeight(This,Distance) ) 

#define IGcadHelix_get_BaseRadius(This,Radius)	\
    ( (This)->lpVtbl -> get_BaseRadius(This,Radius) ) 

#define IGcadHelix_put_BaseRadius(This,Radius)	\
    ( (This)->lpVtbl -> put_BaseRadius(This,Radius) ) 

#define IGcadHelix_get_TopRadius(This,Radius)	\
    ( (This)->lpVtbl -> get_TopRadius(This,Radius) ) 

#define IGcadHelix_put_TopRadius(This,Radius)	\
    ( (This)->lpVtbl -> put_TopRadius(This,Radius) ) 

#define IGcadHelix_get_Twist(This,twistType)	\
    ( (This)->lpVtbl -> get_Twist(This,twistType) ) 

#define IGcadHelix_put_Twist(This,twistType)	\
    ( (This)->lpVtbl -> put_Twist(This,twistType) ) 

#define IGcadHelix_get_TurnSlope(This,slopeAngle)	\
    ( (This)->lpVtbl -> get_TurnSlope(This,slopeAngle) ) 

#define IGcadHelix_get_TotalLength(This,TotalLength)	\
    ( (This)->lpVtbl -> get_TotalLength(This,TotalLength) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadHelix_INTERFACE_DEFINED__ */


#ifndef __IGcadSurface_INTERFACE_DEFINED__
#define __IGcadSurface_INTERFACE_DEFINED__

/* interface IGcadSurface */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadSurface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("223679F5-6EE7-45C9-B778-E1B2A00D49B4")
    IGcadSurface : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SurfaceType( 
            /* [retval][out] */ BSTR *SurfaceType) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UIsolineDensity( 
            /* [retval][out] */ long *density) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UIsolineDensity( 
            /* [in] */ long density) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VIsolineDensity( 
            /* [retval][out] */ long *density) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_VIsolineDensity( 
            /* [in] */ long density) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_WireframeType( 
            /* [retval][out] */ GcWireframeType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_WireframeType( 
            /* [in] */ GcWireframeType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MaintainAssociativity( 
            /* [retval][out] */ int *rhs) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MaintainAssociativity( 
            /* [in] */ int rhs) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ShowAssociativity( 
            /* [retval][out] */ VARIANT_BOOL *rhs) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ShowAssociativity( 
            /* [in] */ VARIANT_BOOL rhs) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EdgeExtensionDistances( 
            /* [retval][out] */ VARIANT *extDistances) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EdgeExtensionDistances( 
            /* [in] */ VARIANT extDistances) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SurfTrimAssociativity( 
            /* [retval][out] */ VARIANT *associative) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SurfTrimAssociativity( 
            /* [in] */ VARIANT associative) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSurfaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSurface * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSurface * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSurface * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSurface * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSurface * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSurface * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSurface * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadSurface * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSurface * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadSurface * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadSurface * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadSurface * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadSurface * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadSurface * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadSurface * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadSurface * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadSurface * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadSurface * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadSurface * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSurface * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadSurface * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSurface * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadSurface * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSurface * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadSurface * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadSurface * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadSurface * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadSurface * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadSurface * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadSurface * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadSurface * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadSurface * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadSurface * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadSurface * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSurface * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadSurface * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSurface * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadSurface * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadSurface * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadSurface * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSurface * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadSurface * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadSurface * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadSurface * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadSurface * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSurface * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSurface * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfaceType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfaceType )( 
            IGcadSurface * This,
            /* [retval][out] */ BSTR *SurfaceType);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_UIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UIsolineDensity )( 
            IGcadSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_UIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UIsolineDensity )( 
            IGcadSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_VIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VIsolineDensity )( 
            IGcadSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_VIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VIsolineDensity )( 
            IGcadSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_WireframeType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WireframeType )( 
            IGcadSurface * This,
            /* [retval][out] */ GcWireframeType *Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_WireframeType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WireframeType )( 
            IGcadSurface * This,
            /* [in] */ GcWireframeType Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_MaintainAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaintainAssociativity )( 
            IGcadSurface * This,
            /* [retval][out] */ int *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_MaintainAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaintainAssociativity )( 
            IGcadSurface * This,
            /* [in] */ int rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_ShowAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowAssociativity )( 
            IGcadSurface * This,
            /* [retval][out] */ VARIANT_BOOL *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_ShowAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowAssociativity )( 
            IGcadSurface * This,
            /* [in] */ VARIANT_BOOL rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_EdgeExtensionDistances)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EdgeExtensionDistances )( 
            IGcadSurface * This,
            /* [retval][out] */ VARIANT *extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_EdgeExtensionDistances)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EdgeExtensionDistances )( 
            IGcadSurface * This,
            /* [in] */ VARIANT extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfTrimAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfTrimAssociativity )( 
            IGcadSurface * This,
            /* [retval][out] */ VARIANT *associative);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_SurfTrimAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SurfTrimAssociativity )( 
            IGcadSurface * This,
            /* [in] */ VARIANT associative);
        
        END_INTERFACE
    } IGcadSurfaceVtbl;

    interface IGcadSurface
    {
        CONST_VTBL struct IGcadSurfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSurface_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSurface_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSurface_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSurface_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSurface_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSurface_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSurface_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSurface_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadSurface_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSurface_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadSurface_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadSurface_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadSurface_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadSurface_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadSurface_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadSurface_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadSurface_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadSurface_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadSurface_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadSurface_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadSurface_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadSurface_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadSurface_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSurface_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadSurface_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSurface_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadSurface_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSurface_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadSurface_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadSurface_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadSurface_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadSurface_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadSurface_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadSurface_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadSurface_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadSurface_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadSurface_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadSurface_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadSurface_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadSurface_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadSurface_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadSurface_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadSurface_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadSurface_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadSurface_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSurface_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadSurface_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSurface_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadSurface_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadSurface_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadSurface_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadSurface_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadSurface_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadSurface_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadSurface_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadSurface_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadSurface_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadSurface_get_SurfaceType(This,SurfaceType)	\
    ( (This)->lpVtbl -> get_SurfaceType(This,SurfaceType) ) 

#define IGcadSurface_get_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_UIsolineDensity(This,density) ) 

#define IGcadSurface_put_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_UIsolineDensity(This,density) ) 

#define IGcadSurface_get_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_VIsolineDensity(This,density) ) 

#define IGcadSurface_put_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_VIsolineDensity(This,density) ) 

#define IGcadSurface_get_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> get_WireframeType(This,Type) ) 

#define IGcadSurface_put_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> put_WireframeType(This,Type) ) 

#define IGcadSurface_get_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_MaintainAssociativity(This,rhs) ) 

#define IGcadSurface_put_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_MaintainAssociativity(This,rhs) ) 

#define IGcadSurface_get_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_ShowAssociativity(This,rhs) ) 

#define IGcadSurface_put_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_ShowAssociativity(This,rhs) ) 

#define IGcadSurface_get_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> get_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadSurface_put_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> put_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadSurface_get_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> get_SurfTrimAssociativity(This,associative) ) 

#define IGcadSurface_put_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> put_SurfTrimAssociativity(This,associative) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSurface_INTERFACE_DEFINED__ */


#ifndef __IGcadPlaneSurface_INTERFACE_DEFINED__
#define __IGcadPlaneSurface_INTERFACE_DEFINED__

/* interface IGcadPlaneSurface */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadPlaneSurface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D3A1F3D5-4942-4904-928D-910183FAD5B3")
    IGcadPlaneSurface : public IGcadSurface
    {
    public:
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPlaneSurfaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPlaneSurface * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPlaneSurface * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPlaneSurface * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPlaneSurface * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPlaneSurface * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPlaneSurface * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPlaneSurface * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPlaneSurface * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPlaneSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPlaneSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadPlaneSurface * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadPlaneSurface * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadPlaneSurface * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadPlaneSurface * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadPlaneSurface * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadPlaneSurface * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadPlaneSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadPlaneSurface * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadPlaneSurface * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadPlaneSurface * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadPlaneSurface * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadPlaneSurface * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadPlaneSurface * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadPlaneSurface * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfaceType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfaceType )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ BSTR *SurfaceType);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_UIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UIsolineDensity )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_UIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UIsolineDensity )( 
            IGcadPlaneSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_VIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VIsolineDensity )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_VIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VIsolineDensity )( 
            IGcadPlaneSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_WireframeType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WireframeType )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ GcWireframeType *Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_WireframeType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WireframeType )( 
            IGcadPlaneSurface * This,
            /* [in] */ GcWireframeType Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_MaintainAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaintainAssociativity )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ int *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_MaintainAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaintainAssociativity )( 
            IGcadPlaneSurface * This,
            /* [in] */ int rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_ShowAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowAssociativity )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ VARIANT_BOOL *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_ShowAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowAssociativity )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT_BOOL rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_EdgeExtensionDistances)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EdgeExtensionDistances )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ VARIANT *extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_EdgeExtensionDistances)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EdgeExtensionDistances )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfTrimAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfTrimAssociativity )( 
            IGcadPlaneSurface * This,
            /* [retval][out] */ VARIANT *associative);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_SurfTrimAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SurfTrimAssociativity )( 
            IGcadPlaneSurface * This,
            /* [in] */ VARIANT associative);
        
        END_INTERFACE
    } IGcadPlaneSurfaceVtbl;

    interface IGcadPlaneSurface
    {
        CONST_VTBL struct IGcadPlaneSurfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPlaneSurface_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPlaneSurface_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPlaneSurface_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPlaneSurface_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPlaneSurface_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPlaneSurface_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPlaneSurface_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPlaneSurface_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPlaneSurface_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPlaneSurface_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPlaneSurface_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPlaneSurface_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPlaneSurface_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPlaneSurface_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPlaneSurface_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPlaneSurface_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPlaneSurface_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPlaneSurface_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPlaneSurface_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPlaneSurface_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPlaneSurface_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadPlaneSurface_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadPlaneSurface_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadPlaneSurface_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadPlaneSurface_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadPlaneSurface_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadPlaneSurface_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadPlaneSurface_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadPlaneSurface_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadPlaneSurface_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadPlaneSurface_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadPlaneSurface_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadPlaneSurface_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadPlaneSurface_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadPlaneSurface_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadPlaneSurface_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadPlaneSurface_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadPlaneSurface_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadPlaneSurface_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadPlaneSurface_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadPlaneSurface_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadPlaneSurface_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadPlaneSurface_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadPlaneSurface_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadPlaneSurface_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadPlaneSurface_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadPlaneSurface_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadPlaneSurface_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadPlaneSurface_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadPlaneSurface_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadPlaneSurface_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadPlaneSurface_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadPlaneSurface_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadPlaneSurface_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadPlaneSurface_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadPlaneSurface_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadPlaneSurface_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadPlaneSurface_get_SurfaceType(This,SurfaceType)	\
    ( (This)->lpVtbl -> get_SurfaceType(This,SurfaceType) ) 

#define IGcadPlaneSurface_get_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_UIsolineDensity(This,density) ) 

#define IGcadPlaneSurface_put_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_UIsolineDensity(This,density) ) 

#define IGcadPlaneSurface_get_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_VIsolineDensity(This,density) ) 

#define IGcadPlaneSurface_put_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_VIsolineDensity(This,density) ) 

#define IGcadPlaneSurface_get_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> get_WireframeType(This,Type) ) 

#define IGcadPlaneSurface_put_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> put_WireframeType(This,Type) ) 

#define IGcadPlaneSurface_get_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_MaintainAssociativity(This,rhs) ) 

#define IGcadPlaneSurface_put_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_MaintainAssociativity(This,rhs) ) 

#define IGcadPlaneSurface_get_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_ShowAssociativity(This,rhs) ) 

#define IGcadPlaneSurface_put_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_ShowAssociativity(This,rhs) ) 

#define IGcadPlaneSurface_get_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> get_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadPlaneSurface_put_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> put_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadPlaneSurface_get_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> get_SurfTrimAssociativity(This,associative) ) 

#define IGcadPlaneSurface_put_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> put_SurfTrimAssociativity(This,associative) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPlaneSurface_INTERFACE_DEFINED__ */


#ifndef __IGcadExtrudedSurface_INTERFACE_DEFINED__
#define __IGcadExtrudedSurface_INTERFACE_DEFINED__

/* interface IGcadExtrudedSurface */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadExtrudedSurface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FB90B93B-E0A9-43E8-A5F9-B79015C81B0E")
    IGcadExtrudedSurface : public IGcadSurface
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TaperAngle( 
            /* [retval][out] */ GCAD_ANGLE *TaperAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TaperAngle( 
            /* [in] */ GCAD_ANGLE TaperAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Direction( 
            /* [retval][out] */ VARIANT *Direction) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadExtrudedSurfaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadExtrudedSurface * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadExtrudedSurface * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadExtrudedSurface * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadExtrudedSurface * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadExtrudedSurface * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadExtrudedSurface * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadExtrudedSurface * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadExtrudedSurface * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadExtrudedSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadExtrudedSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadExtrudedSurface * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadExtrudedSurface * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadExtrudedSurface * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadExtrudedSurface * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadExtrudedSurface * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadExtrudedSurface * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadExtrudedSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadExtrudedSurface * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadExtrudedSurface * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadExtrudedSurface * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadExtrudedSurface * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadExtrudedSurface * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadExtrudedSurface * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadExtrudedSurface * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfaceType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfaceType )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ BSTR *SurfaceType);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_UIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UIsolineDensity )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_UIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UIsolineDensity )( 
            IGcadExtrudedSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_VIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VIsolineDensity )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_VIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VIsolineDensity )( 
            IGcadExtrudedSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_WireframeType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WireframeType )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ GcWireframeType *Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_WireframeType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WireframeType )( 
            IGcadExtrudedSurface * This,
            /* [in] */ GcWireframeType Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_MaintainAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaintainAssociativity )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ int *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_MaintainAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaintainAssociativity )( 
            IGcadExtrudedSurface * This,
            /* [in] */ int rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_ShowAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowAssociativity )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ VARIANT_BOOL *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_ShowAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowAssociativity )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT_BOOL rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_EdgeExtensionDistances)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EdgeExtensionDistances )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ VARIANT *extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_EdgeExtensionDistances)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EdgeExtensionDistances )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfTrimAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfTrimAssociativity )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ VARIANT *associative);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_SurfTrimAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SurfTrimAssociativity )( 
            IGcadExtrudedSurface * This,
            /* [in] */ VARIANT associative);
        
        DECLSPEC_XFGVIRT(IGcadExtrudedSurface, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadExtrudedSurface, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadExtrudedSurface * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadExtrudedSurface, get_TaperAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TaperAngle )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ GCAD_ANGLE *TaperAngle);
        
        DECLSPEC_XFGVIRT(IGcadExtrudedSurface, put_TaperAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TaperAngle )( 
            IGcadExtrudedSurface * This,
            /* [in] */ GCAD_ANGLE TaperAngle);
        
        DECLSPEC_XFGVIRT(IGcadExtrudedSurface, get_Direction)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Direction )( 
            IGcadExtrudedSurface * This,
            /* [retval][out] */ VARIANT *Direction);
        
        END_INTERFACE
    } IGcadExtrudedSurfaceVtbl;

    interface IGcadExtrudedSurface
    {
        CONST_VTBL struct IGcadExtrudedSurfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadExtrudedSurface_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadExtrudedSurface_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadExtrudedSurface_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadExtrudedSurface_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadExtrudedSurface_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadExtrudedSurface_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadExtrudedSurface_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadExtrudedSurface_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadExtrudedSurface_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadExtrudedSurface_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadExtrudedSurface_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadExtrudedSurface_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadExtrudedSurface_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadExtrudedSurface_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadExtrudedSurface_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadExtrudedSurface_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadExtrudedSurface_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadExtrudedSurface_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadExtrudedSurface_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadExtrudedSurface_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadExtrudedSurface_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadExtrudedSurface_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadExtrudedSurface_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadExtrudedSurface_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadExtrudedSurface_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadExtrudedSurface_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadExtrudedSurface_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadExtrudedSurface_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadExtrudedSurface_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadExtrudedSurface_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadExtrudedSurface_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadExtrudedSurface_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadExtrudedSurface_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadExtrudedSurface_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadExtrudedSurface_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadExtrudedSurface_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadExtrudedSurface_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadExtrudedSurface_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadExtrudedSurface_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadExtrudedSurface_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadExtrudedSurface_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadExtrudedSurface_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadExtrudedSurface_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadExtrudedSurface_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadExtrudedSurface_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadExtrudedSurface_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadExtrudedSurface_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadExtrudedSurface_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadExtrudedSurface_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadExtrudedSurface_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadExtrudedSurface_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadExtrudedSurface_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadExtrudedSurface_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadExtrudedSurface_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadExtrudedSurface_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadExtrudedSurface_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadExtrudedSurface_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadExtrudedSurface_get_SurfaceType(This,SurfaceType)	\
    ( (This)->lpVtbl -> get_SurfaceType(This,SurfaceType) ) 

#define IGcadExtrudedSurface_get_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_UIsolineDensity(This,density) ) 

#define IGcadExtrudedSurface_put_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_UIsolineDensity(This,density) ) 

#define IGcadExtrudedSurface_get_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_VIsolineDensity(This,density) ) 

#define IGcadExtrudedSurface_put_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_VIsolineDensity(This,density) ) 

#define IGcadExtrudedSurface_get_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> get_WireframeType(This,Type) ) 

#define IGcadExtrudedSurface_put_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> put_WireframeType(This,Type) ) 

#define IGcadExtrudedSurface_get_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_MaintainAssociativity(This,rhs) ) 

#define IGcadExtrudedSurface_put_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_MaintainAssociativity(This,rhs) ) 

#define IGcadExtrudedSurface_get_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_ShowAssociativity(This,rhs) ) 

#define IGcadExtrudedSurface_put_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_ShowAssociativity(This,rhs) ) 

#define IGcadExtrudedSurface_get_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> get_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadExtrudedSurface_put_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> put_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadExtrudedSurface_get_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> get_SurfTrimAssociativity(This,associative) ) 

#define IGcadExtrudedSurface_put_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> put_SurfTrimAssociativity(This,associative) ) 


#define IGcadExtrudedSurface_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadExtrudedSurface_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadExtrudedSurface_get_TaperAngle(This,TaperAngle)	\
    ( (This)->lpVtbl -> get_TaperAngle(This,TaperAngle) ) 

#define IGcadExtrudedSurface_put_TaperAngle(This,TaperAngle)	\
    ( (This)->lpVtbl -> put_TaperAngle(This,TaperAngle) ) 

#define IGcadExtrudedSurface_get_Direction(This,Direction)	\
    ( (This)->lpVtbl -> get_Direction(This,Direction) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadExtrudedSurface_INTERFACE_DEFINED__ */


#ifndef __IGcadRevolvedSurface_INTERFACE_DEFINED__
#define __IGcadRevolvedSurface_INTERFACE_DEFINED__

/* interface IGcadRevolvedSurface */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadRevolvedSurface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BC4B31D4-9595-43C1-8BC9-AC5F8003F179")
    IGcadRevolvedSurface : public IGcadSurface
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RevolutionAngle( 
            /* [retval][out] */ GCAD_ANGLE *revAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RevolutionAngle( 
            /* [in] */ GCAD_ANGLE revAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AxisPosition( 
            /* [retval][out] */ VARIANT *AxisPosition) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AxisPosition( 
            /* [in] */ VARIANT AxisPosition) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AxisDirection( 
            /* [retval][out] */ VARIANT *AxisDirection) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadRevolvedSurfaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadRevolvedSurface * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadRevolvedSurface * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadRevolvedSurface * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadRevolvedSurface * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadRevolvedSurface * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadRevolvedSurface * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadRevolvedSurface * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadRevolvedSurface * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadRevolvedSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadRevolvedSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadRevolvedSurface * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadRevolvedSurface * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadRevolvedSurface * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadRevolvedSurface * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadRevolvedSurface * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadRevolvedSurface * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadRevolvedSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadRevolvedSurface * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadRevolvedSurface * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadRevolvedSurface * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadRevolvedSurface * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadRevolvedSurface * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadRevolvedSurface * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadRevolvedSurface * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfaceType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfaceType )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ BSTR *SurfaceType);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_UIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UIsolineDensity )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_UIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UIsolineDensity )( 
            IGcadRevolvedSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_VIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VIsolineDensity )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_VIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VIsolineDensity )( 
            IGcadRevolvedSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_WireframeType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WireframeType )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ GcWireframeType *Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_WireframeType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WireframeType )( 
            IGcadRevolvedSurface * This,
            /* [in] */ GcWireframeType Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_MaintainAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaintainAssociativity )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ int *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_MaintainAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaintainAssociativity )( 
            IGcadRevolvedSurface * This,
            /* [in] */ int rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_ShowAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowAssociativity )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ VARIANT_BOOL *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_ShowAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowAssociativity )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT_BOOL rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_EdgeExtensionDistances)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EdgeExtensionDistances )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ VARIANT *extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_EdgeExtensionDistances)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EdgeExtensionDistances )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfTrimAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfTrimAssociativity )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ VARIANT *associative);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_SurfTrimAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SurfTrimAssociativity )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT associative);
        
        DECLSPEC_XFGVIRT(IGcadRevolvedSurface, get_RevolutionAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RevolutionAngle )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ GCAD_ANGLE *revAngle);
        
        DECLSPEC_XFGVIRT(IGcadRevolvedSurface, put_RevolutionAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RevolutionAngle )( 
            IGcadRevolvedSurface * This,
            /* [in] */ GCAD_ANGLE revAngle);
        
        DECLSPEC_XFGVIRT(IGcadRevolvedSurface, get_AxisPosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AxisPosition )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ VARIANT *AxisPosition);
        
        DECLSPEC_XFGVIRT(IGcadRevolvedSurface, put_AxisPosition)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AxisPosition )( 
            IGcadRevolvedSurface * This,
            /* [in] */ VARIANT AxisPosition);
        
        DECLSPEC_XFGVIRT(IGcadRevolvedSurface, get_AxisDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AxisDirection )( 
            IGcadRevolvedSurface * This,
            /* [retval][out] */ VARIANT *AxisDirection);
        
        END_INTERFACE
    } IGcadRevolvedSurfaceVtbl;

    interface IGcadRevolvedSurface
    {
        CONST_VTBL struct IGcadRevolvedSurfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadRevolvedSurface_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadRevolvedSurface_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadRevolvedSurface_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadRevolvedSurface_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadRevolvedSurface_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadRevolvedSurface_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadRevolvedSurface_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadRevolvedSurface_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadRevolvedSurface_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadRevolvedSurface_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadRevolvedSurface_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadRevolvedSurface_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadRevolvedSurface_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadRevolvedSurface_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadRevolvedSurface_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadRevolvedSurface_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadRevolvedSurface_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadRevolvedSurface_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadRevolvedSurface_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadRevolvedSurface_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadRevolvedSurface_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadRevolvedSurface_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadRevolvedSurface_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadRevolvedSurface_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadRevolvedSurface_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadRevolvedSurface_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadRevolvedSurface_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadRevolvedSurface_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadRevolvedSurface_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadRevolvedSurface_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadRevolvedSurface_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadRevolvedSurface_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadRevolvedSurface_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadRevolvedSurface_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadRevolvedSurface_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadRevolvedSurface_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadRevolvedSurface_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadRevolvedSurface_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadRevolvedSurface_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadRevolvedSurface_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadRevolvedSurface_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadRevolvedSurface_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadRevolvedSurface_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadRevolvedSurface_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadRevolvedSurface_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadRevolvedSurface_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadRevolvedSurface_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadRevolvedSurface_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadRevolvedSurface_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadRevolvedSurface_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadRevolvedSurface_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadRevolvedSurface_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadRevolvedSurface_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadRevolvedSurface_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadRevolvedSurface_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadRevolvedSurface_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadRevolvedSurface_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadRevolvedSurface_get_SurfaceType(This,SurfaceType)	\
    ( (This)->lpVtbl -> get_SurfaceType(This,SurfaceType) ) 

#define IGcadRevolvedSurface_get_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_UIsolineDensity(This,density) ) 

#define IGcadRevolvedSurface_put_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_UIsolineDensity(This,density) ) 

#define IGcadRevolvedSurface_get_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_VIsolineDensity(This,density) ) 

#define IGcadRevolvedSurface_put_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_VIsolineDensity(This,density) ) 

#define IGcadRevolvedSurface_get_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> get_WireframeType(This,Type) ) 

#define IGcadRevolvedSurface_put_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> put_WireframeType(This,Type) ) 

#define IGcadRevolvedSurface_get_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_MaintainAssociativity(This,rhs) ) 

#define IGcadRevolvedSurface_put_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_MaintainAssociativity(This,rhs) ) 

#define IGcadRevolvedSurface_get_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_ShowAssociativity(This,rhs) ) 

#define IGcadRevolvedSurface_put_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_ShowAssociativity(This,rhs) ) 

#define IGcadRevolvedSurface_get_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> get_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadRevolvedSurface_put_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> put_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadRevolvedSurface_get_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> get_SurfTrimAssociativity(This,associative) ) 

#define IGcadRevolvedSurface_put_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> put_SurfTrimAssociativity(This,associative) ) 


#define IGcadRevolvedSurface_get_RevolutionAngle(This,revAngle)	\
    ( (This)->lpVtbl -> get_RevolutionAngle(This,revAngle) ) 

#define IGcadRevolvedSurface_put_RevolutionAngle(This,revAngle)	\
    ( (This)->lpVtbl -> put_RevolutionAngle(This,revAngle) ) 

#define IGcadRevolvedSurface_get_AxisPosition(This,AxisPosition)	\
    ( (This)->lpVtbl -> get_AxisPosition(This,AxisPosition) ) 

#define IGcadRevolvedSurface_put_AxisPosition(This,AxisPosition)	\
    ( (This)->lpVtbl -> put_AxisPosition(This,AxisPosition) ) 

#define IGcadRevolvedSurface_get_AxisDirection(This,AxisDirection)	\
    ( (This)->lpVtbl -> get_AxisDirection(This,AxisDirection) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadRevolvedSurface_INTERFACE_DEFINED__ */


#ifndef __IGcadSweptSurface_INTERFACE_DEFINED__
#define __IGcadSweptSurface_INTERFACE_DEFINED__

/* interface IGcadSweptSurface */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadSweptSurface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0EA16B8C-632D-4AC3-8B6F-FECEB9558A7D")
    IGcadSweptSurface : public IGcadSurface
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ProfileRotation( 
            /* [retval][out] */ GCAD_ANGLE *profileRotationAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ProfileRotation( 
            /* [in] */ GCAD_ANGLE profileRotationAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Bank( 
            /* [retval][out] */ VARIANT_BOOL *bBank) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Bank( 
            /* [in] */ VARIANT_BOOL bBank) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Twist( 
            /* [retval][out] */ GCAD_ANGLE *TwistAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Twist( 
            /* [in] */ GCAD_ANGLE TwistAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Scale( 
            /* [retval][out] */ double *scale) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Scale( 
            /* [in] */ double scale) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Length( 
            /* [retval][out] */ double *Length) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSweptSurfaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSweptSurface * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSweptSurface * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSweptSurface * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSweptSurface * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSweptSurface * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSweptSurface * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSweptSurface * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadSweptSurface * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadSweptSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadSweptSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadSweptSurface * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadSweptSurface * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadSweptSurface * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadSweptSurface * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadSweptSurface * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadSweptSurface * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadSweptSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadSweptSurface * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadSweptSurface * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadSweptSurface * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadSweptSurface * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadSweptSurface * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadSweptSurface * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSweptSurface * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfaceType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfaceType )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ BSTR *SurfaceType);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_UIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UIsolineDensity )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_UIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UIsolineDensity )( 
            IGcadSweptSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_VIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VIsolineDensity )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_VIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VIsolineDensity )( 
            IGcadSweptSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_WireframeType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WireframeType )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ GcWireframeType *Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_WireframeType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WireframeType )( 
            IGcadSweptSurface * This,
            /* [in] */ GcWireframeType Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_MaintainAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaintainAssociativity )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ int *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_MaintainAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaintainAssociativity )( 
            IGcadSweptSurface * This,
            /* [in] */ int rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_ShowAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowAssociativity )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ VARIANT_BOOL *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_ShowAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowAssociativity )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT_BOOL rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_EdgeExtensionDistances)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EdgeExtensionDistances )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ VARIANT *extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_EdgeExtensionDistances)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EdgeExtensionDistances )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfTrimAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfTrimAssociativity )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ VARIANT *associative);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_SurfTrimAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SurfTrimAssociativity )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT associative);
        
        DECLSPEC_XFGVIRT(IGcadSweptSurface, get_ProfileRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ProfileRotation )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ GCAD_ANGLE *profileRotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadSweptSurface, put_ProfileRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ProfileRotation )( 
            IGcadSweptSurface * This,
            /* [in] */ GCAD_ANGLE profileRotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadSweptSurface, get_Bank)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Bank )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bBank);
        
        DECLSPEC_XFGVIRT(IGcadSweptSurface, put_Bank)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Bank )( 
            IGcadSweptSurface * This,
            /* [in] */ VARIANT_BOOL bBank);
        
        DECLSPEC_XFGVIRT(IGcadSweptSurface, get_Twist)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Twist )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ GCAD_ANGLE *TwistAngle);
        
        DECLSPEC_XFGVIRT(IGcadSweptSurface, put_Twist)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Twist )( 
            IGcadSweptSurface * This,
            /* [in] */ GCAD_ANGLE TwistAngle);
        
        DECLSPEC_XFGVIRT(IGcadSweptSurface, get_Scale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Scale )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ double *scale);
        
        DECLSPEC_XFGVIRT(IGcadSweptSurface, put_Scale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Scale )( 
            IGcadSweptSurface * This,
            /* [in] */ double scale);
        
        DECLSPEC_XFGVIRT(IGcadSweptSurface, get_Length)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
            IGcadSweptSurface * This,
            /* [retval][out] */ double *Length);
        
        END_INTERFACE
    } IGcadSweptSurfaceVtbl;

    interface IGcadSweptSurface
    {
        CONST_VTBL struct IGcadSweptSurfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSweptSurface_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSweptSurface_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSweptSurface_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSweptSurface_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSweptSurface_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSweptSurface_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSweptSurface_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSweptSurface_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadSweptSurface_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSweptSurface_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadSweptSurface_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadSweptSurface_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadSweptSurface_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadSweptSurface_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadSweptSurface_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadSweptSurface_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadSweptSurface_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadSweptSurface_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadSweptSurface_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadSweptSurface_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadSweptSurface_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadSweptSurface_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadSweptSurface_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSweptSurface_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadSweptSurface_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSweptSurface_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadSweptSurface_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSweptSurface_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadSweptSurface_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadSweptSurface_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadSweptSurface_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadSweptSurface_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadSweptSurface_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadSweptSurface_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadSweptSurface_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadSweptSurface_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadSweptSurface_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadSweptSurface_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadSweptSurface_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadSweptSurface_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadSweptSurface_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadSweptSurface_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadSweptSurface_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadSweptSurface_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadSweptSurface_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSweptSurface_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadSweptSurface_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSweptSurface_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadSweptSurface_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadSweptSurface_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadSweptSurface_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadSweptSurface_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadSweptSurface_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadSweptSurface_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadSweptSurface_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadSweptSurface_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadSweptSurface_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadSweptSurface_get_SurfaceType(This,SurfaceType)	\
    ( (This)->lpVtbl -> get_SurfaceType(This,SurfaceType) ) 

#define IGcadSweptSurface_get_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_UIsolineDensity(This,density) ) 

#define IGcadSweptSurface_put_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_UIsolineDensity(This,density) ) 

#define IGcadSweptSurface_get_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_VIsolineDensity(This,density) ) 

#define IGcadSweptSurface_put_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_VIsolineDensity(This,density) ) 

#define IGcadSweptSurface_get_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> get_WireframeType(This,Type) ) 

#define IGcadSweptSurface_put_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> put_WireframeType(This,Type) ) 

#define IGcadSweptSurface_get_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_MaintainAssociativity(This,rhs) ) 

#define IGcadSweptSurface_put_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_MaintainAssociativity(This,rhs) ) 

#define IGcadSweptSurface_get_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_ShowAssociativity(This,rhs) ) 

#define IGcadSweptSurface_put_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_ShowAssociativity(This,rhs) ) 

#define IGcadSweptSurface_get_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> get_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadSweptSurface_put_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> put_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadSweptSurface_get_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> get_SurfTrimAssociativity(This,associative) ) 

#define IGcadSweptSurface_put_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> put_SurfTrimAssociativity(This,associative) ) 


#define IGcadSweptSurface_get_ProfileRotation(This,profileRotationAngle)	\
    ( (This)->lpVtbl -> get_ProfileRotation(This,profileRotationAngle) ) 

#define IGcadSweptSurface_put_ProfileRotation(This,profileRotationAngle)	\
    ( (This)->lpVtbl -> put_ProfileRotation(This,profileRotationAngle) ) 

#define IGcadSweptSurface_get_Bank(This,bBank)	\
    ( (This)->lpVtbl -> get_Bank(This,bBank) ) 

#define IGcadSweptSurface_put_Bank(This,bBank)	\
    ( (This)->lpVtbl -> put_Bank(This,bBank) ) 

#define IGcadSweptSurface_get_Twist(This,TwistAngle)	\
    ( (This)->lpVtbl -> get_Twist(This,TwistAngle) ) 

#define IGcadSweptSurface_put_Twist(This,TwistAngle)	\
    ( (This)->lpVtbl -> put_Twist(This,TwistAngle) ) 

#define IGcadSweptSurface_get_Scale(This,scale)	\
    ( (This)->lpVtbl -> get_Scale(This,scale) ) 

#define IGcadSweptSurface_put_Scale(This,scale)	\
    ( (This)->lpVtbl -> put_Scale(This,scale) ) 

#define IGcadSweptSurface_get_Length(This,Length)	\
    ( (This)->lpVtbl -> get_Length(This,Length) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSweptSurface_INTERFACE_DEFINED__ */


#ifndef __IGcadLoftedSurface_INTERFACE_DEFINED__
#define __IGcadLoftedSurface_INTERFACE_DEFINED__

/* interface IGcadLoftedSurface */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadLoftedSurface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("83049727-9881-4D4D-8E57-63C83CB0CC6E")
    IGcadLoftedSurface : public IGcadSurface
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NumCrossSections( 
            /* [retval][out] */ long *NumCrossSections) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NumGuidePaths( 
            /* [retval][out] */ long *NumGuidePaths) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SurfaceNormals( 
            /* [retval][out] */ GcLoftedSurfaceNormalType *surfaceNormal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SurfaceNormals( 
            /* [in] */ GcLoftedSurfaceNormalType surfaceNormal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartDraftAngle( 
            /* [retval][out] */ GCAD_ANGLE *StartDraftAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StartDraftAngle( 
            /* [in] */ GCAD_ANGLE StartDraftAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartDraftMagnitude( 
            /* [retval][out] */ double *startDraftMag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StartDraftMagnitude( 
            /* [in] */ double startDraftMag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EndDraftAngle( 
            /* [retval][out] */ GCAD_ANGLE *EndDraftAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EndDraftAngle( 
            /* [in] */ GCAD_ANGLE EndDraftAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EndDraftMagnitude( 
            /* [retval][out] */ double *endDraftMag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EndDraftMagnitude( 
            /* [in] */ double endDraftMag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Closed( 
            /* [retval][out] */ VARIANT_BOOL *bClosed) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Closed( 
            /* [in] */ VARIANT_BOOL bClosed) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartSmoothMagnitude( 
            /* [retval][out] */ double *startSmoothMag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StartSmoothMagnitude( 
            /* [in] */ double startSmoothMag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EndSmoothMagnitude( 
            /* [retval][out] */ double *endSmoothMag) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EndSmoothMagnitude( 
            /* [in] */ double endSmoothMag) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartSmoothContinuity( 
            /* [retval][out] */ int *StartSmoothContinuity) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StartSmoothContinuity( 
            /* [in] */ int StartSmoothContinuity) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_EndSmoothContinuity( 
            /* [retval][out] */ int *EndSmoothContinuity) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_EndSmoothContinuity( 
            /* [in] */ int EndSmoothContinuity) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Periodic( 
            /* [retval][out] */ VARIANT_BOOL *bPeriodic) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Periodic( 
            /* [in] */ VARIANT_BOOL bPeriodic) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadLoftedSurfaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadLoftedSurface * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadLoftedSurface * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadLoftedSurface * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadLoftedSurface * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadLoftedSurface * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadLoftedSurface * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadLoftedSurface * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadLoftedSurface * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadLoftedSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadLoftedSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadLoftedSurface * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadLoftedSurface * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadLoftedSurface * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadLoftedSurface * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadLoftedSurface * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadLoftedSurface * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadLoftedSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadLoftedSurface * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadLoftedSurface * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadLoftedSurface * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadLoftedSurface * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadLoftedSurface * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadLoftedSurface * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadLoftedSurface * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfaceType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfaceType )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ BSTR *SurfaceType);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_UIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UIsolineDensity )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_UIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UIsolineDensity )( 
            IGcadLoftedSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_VIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VIsolineDensity )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_VIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VIsolineDensity )( 
            IGcadLoftedSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_WireframeType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WireframeType )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ GcWireframeType *Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_WireframeType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WireframeType )( 
            IGcadLoftedSurface * This,
            /* [in] */ GcWireframeType Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_MaintainAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaintainAssociativity )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ int *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_MaintainAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaintainAssociativity )( 
            IGcadLoftedSurface * This,
            /* [in] */ int rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_ShowAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowAssociativity )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ VARIANT_BOOL *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_ShowAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowAssociativity )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT_BOOL rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_EdgeExtensionDistances)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EdgeExtensionDistances )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ VARIANT *extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_EdgeExtensionDistances)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EdgeExtensionDistances )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfTrimAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfTrimAssociativity )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ VARIANT *associative);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_SurfTrimAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SurfTrimAssociativity )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT associative);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_NumCrossSections)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumCrossSections )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ long *NumCrossSections);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_NumGuidePaths)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumGuidePaths )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ long *NumGuidePaths);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_SurfaceNormals)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfaceNormals )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ GcLoftedSurfaceNormalType *surfaceNormal);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, put_SurfaceNormals)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SurfaceNormals )( 
            IGcadLoftedSurface * This,
            /* [in] */ GcLoftedSurfaceNormalType surfaceNormal);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_StartDraftAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartDraftAngle )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ GCAD_ANGLE *StartDraftAngle);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, put_StartDraftAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartDraftAngle )( 
            IGcadLoftedSurface * This,
            /* [in] */ GCAD_ANGLE StartDraftAngle);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_StartDraftMagnitude)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartDraftMagnitude )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ double *startDraftMag);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, put_StartDraftMagnitude)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartDraftMagnitude )( 
            IGcadLoftedSurface * This,
            /* [in] */ double startDraftMag);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_EndDraftAngle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndDraftAngle )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ GCAD_ANGLE *EndDraftAngle);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, put_EndDraftAngle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EndDraftAngle )( 
            IGcadLoftedSurface * This,
            /* [in] */ GCAD_ANGLE EndDraftAngle);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_EndDraftMagnitude)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndDraftMagnitude )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ double *endDraftMag);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, put_EndDraftMagnitude)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EndDraftMagnitude )( 
            IGcadLoftedSurface * This,
            /* [in] */ double endDraftMag);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_Closed)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Closed )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bClosed);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, put_Closed)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Closed )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT_BOOL bClosed);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_StartSmoothMagnitude)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartSmoothMagnitude )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ double *startSmoothMag);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, put_StartSmoothMagnitude)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartSmoothMagnitude )( 
            IGcadLoftedSurface * This,
            /* [in] */ double startSmoothMag);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_EndSmoothMagnitude)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndSmoothMagnitude )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ double *endSmoothMag);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, put_EndSmoothMagnitude)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EndSmoothMagnitude )( 
            IGcadLoftedSurface * This,
            /* [in] */ double endSmoothMag);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_StartSmoothContinuity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartSmoothContinuity )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ int *StartSmoothContinuity);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, put_StartSmoothContinuity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartSmoothContinuity )( 
            IGcadLoftedSurface * This,
            /* [in] */ int StartSmoothContinuity);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_EndSmoothContinuity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EndSmoothContinuity )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ int *EndSmoothContinuity);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, put_EndSmoothContinuity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EndSmoothContinuity )( 
            IGcadLoftedSurface * This,
            /* [in] */ int EndSmoothContinuity);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, get_Periodic)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Periodic )( 
            IGcadLoftedSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bPeriodic);
        
        DECLSPEC_XFGVIRT(IGcadLoftedSurface, put_Periodic)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Periodic )( 
            IGcadLoftedSurface * This,
            /* [in] */ VARIANT_BOOL bPeriodic);
        
        END_INTERFACE
    } IGcadLoftedSurfaceVtbl;

    interface IGcadLoftedSurface
    {
        CONST_VTBL struct IGcadLoftedSurfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadLoftedSurface_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadLoftedSurface_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadLoftedSurface_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadLoftedSurface_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadLoftedSurface_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadLoftedSurface_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadLoftedSurface_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadLoftedSurface_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadLoftedSurface_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadLoftedSurface_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadLoftedSurface_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadLoftedSurface_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadLoftedSurface_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadLoftedSurface_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadLoftedSurface_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadLoftedSurface_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadLoftedSurface_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadLoftedSurface_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadLoftedSurface_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadLoftedSurface_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadLoftedSurface_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadLoftedSurface_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadLoftedSurface_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadLoftedSurface_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadLoftedSurface_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadLoftedSurface_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadLoftedSurface_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadLoftedSurface_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadLoftedSurface_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadLoftedSurface_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadLoftedSurface_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadLoftedSurface_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadLoftedSurface_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadLoftedSurface_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadLoftedSurface_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadLoftedSurface_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadLoftedSurface_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadLoftedSurface_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadLoftedSurface_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadLoftedSurface_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadLoftedSurface_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadLoftedSurface_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadLoftedSurface_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadLoftedSurface_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadLoftedSurface_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadLoftedSurface_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadLoftedSurface_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadLoftedSurface_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadLoftedSurface_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadLoftedSurface_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadLoftedSurface_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadLoftedSurface_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadLoftedSurface_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadLoftedSurface_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadLoftedSurface_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadLoftedSurface_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadLoftedSurface_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadLoftedSurface_get_SurfaceType(This,SurfaceType)	\
    ( (This)->lpVtbl -> get_SurfaceType(This,SurfaceType) ) 

#define IGcadLoftedSurface_get_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_UIsolineDensity(This,density) ) 

#define IGcadLoftedSurface_put_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_UIsolineDensity(This,density) ) 

#define IGcadLoftedSurface_get_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_VIsolineDensity(This,density) ) 

#define IGcadLoftedSurface_put_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_VIsolineDensity(This,density) ) 

#define IGcadLoftedSurface_get_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> get_WireframeType(This,Type) ) 

#define IGcadLoftedSurface_put_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> put_WireframeType(This,Type) ) 

#define IGcadLoftedSurface_get_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_MaintainAssociativity(This,rhs) ) 

#define IGcadLoftedSurface_put_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_MaintainAssociativity(This,rhs) ) 

#define IGcadLoftedSurface_get_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_ShowAssociativity(This,rhs) ) 

#define IGcadLoftedSurface_put_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_ShowAssociativity(This,rhs) ) 

#define IGcadLoftedSurface_get_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> get_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadLoftedSurface_put_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> put_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadLoftedSurface_get_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> get_SurfTrimAssociativity(This,associative) ) 

#define IGcadLoftedSurface_put_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> put_SurfTrimAssociativity(This,associative) ) 


#define IGcadLoftedSurface_get_NumCrossSections(This,NumCrossSections)	\
    ( (This)->lpVtbl -> get_NumCrossSections(This,NumCrossSections) ) 

#define IGcadLoftedSurface_get_NumGuidePaths(This,NumGuidePaths)	\
    ( (This)->lpVtbl -> get_NumGuidePaths(This,NumGuidePaths) ) 

#define IGcadLoftedSurface_get_SurfaceNormals(This,surfaceNormal)	\
    ( (This)->lpVtbl -> get_SurfaceNormals(This,surfaceNormal) ) 

#define IGcadLoftedSurface_put_SurfaceNormals(This,surfaceNormal)	\
    ( (This)->lpVtbl -> put_SurfaceNormals(This,surfaceNormal) ) 

#define IGcadLoftedSurface_get_StartDraftAngle(This,StartDraftAngle)	\
    ( (This)->lpVtbl -> get_StartDraftAngle(This,StartDraftAngle) ) 

#define IGcadLoftedSurface_put_StartDraftAngle(This,StartDraftAngle)	\
    ( (This)->lpVtbl -> put_StartDraftAngle(This,StartDraftAngle) ) 

#define IGcadLoftedSurface_get_StartDraftMagnitude(This,startDraftMag)	\
    ( (This)->lpVtbl -> get_StartDraftMagnitude(This,startDraftMag) ) 

#define IGcadLoftedSurface_put_StartDraftMagnitude(This,startDraftMag)	\
    ( (This)->lpVtbl -> put_StartDraftMagnitude(This,startDraftMag) ) 

#define IGcadLoftedSurface_get_EndDraftAngle(This,EndDraftAngle)	\
    ( (This)->lpVtbl -> get_EndDraftAngle(This,EndDraftAngle) ) 

#define IGcadLoftedSurface_put_EndDraftAngle(This,EndDraftAngle)	\
    ( (This)->lpVtbl -> put_EndDraftAngle(This,EndDraftAngle) ) 

#define IGcadLoftedSurface_get_EndDraftMagnitude(This,endDraftMag)	\
    ( (This)->lpVtbl -> get_EndDraftMagnitude(This,endDraftMag) ) 

#define IGcadLoftedSurface_put_EndDraftMagnitude(This,endDraftMag)	\
    ( (This)->lpVtbl -> put_EndDraftMagnitude(This,endDraftMag) ) 

#define IGcadLoftedSurface_get_Closed(This,bClosed)	\
    ( (This)->lpVtbl -> get_Closed(This,bClosed) ) 

#define IGcadLoftedSurface_put_Closed(This,bClosed)	\
    ( (This)->lpVtbl -> put_Closed(This,bClosed) ) 

#define IGcadLoftedSurface_get_StartSmoothMagnitude(This,startSmoothMag)	\
    ( (This)->lpVtbl -> get_StartSmoothMagnitude(This,startSmoothMag) ) 

#define IGcadLoftedSurface_put_StartSmoothMagnitude(This,startSmoothMag)	\
    ( (This)->lpVtbl -> put_StartSmoothMagnitude(This,startSmoothMag) ) 

#define IGcadLoftedSurface_get_EndSmoothMagnitude(This,endSmoothMag)	\
    ( (This)->lpVtbl -> get_EndSmoothMagnitude(This,endSmoothMag) ) 

#define IGcadLoftedSurface_put_EndSmoothMagnitude(This,endSmoothMag)	\
    ( (This)->lpVtbl -> put_EndSmoothMagnitude(This,endSmoothMag) ) 

#define IGcadLoftedSurface_get_StartSmoothContinuity(This,StartSmoothContinuity)	\
    ( (This)->lpVtbl -> get_StartSmoothContinuity(This,StartSmoothContinuity) ) 

#define IGcadLoftedSurface_put_StartSmoothContinuity(This,StartSmoothContinuity)	\
    ( (This)->lpVtbl -> put_StartSmoothContinuity(This,StartSmoothContinuity) ) 

#define IGcadLoftedSurface_get_EndSmoothContinuity(This,EndSmoothContinuity)	\
    ( (This)->lpVtbl -> get_EndSmoothContinuity(This,EndSmoothContinuity) ) 

#define IGcadLoftedSurface_put_EndSmoothContinuity(This,EndSmoothContinuity)	\
    ( (This)->lpVtbl -> put_EndSmoothContinuity(This,EndSmoothContinuity) ) 

#define IGcadLoftedSurface_get_Periodic(This,bPeriodic)	\
    ( (This)->lpVtbl -> get_Periodic(This,bPeriodic) ) 

#define IGcadLoftedSurface_put_Periodic(This,bPeriodic)	\
    ( (This)->lpVtbl -> put_Periodic(This,bPeriodic) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadLoftedSurface_INTERFACE_DEFINED__ */


#ifndef __IGcadSection2_INTERFACE_DEFINED__
#define __IGcadSection2_INTERFACE_DEFINED__

/* interface IGcadSection2 */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadSection2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B894B727-442F-4560-B162-4AFD82F79E09")
    IGcadSection2 : public IGcadSection
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_State2( 
            /* [retval][out] */ GcSectionState2 *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_State2( 
            /* [in] */ GcSectionState2 pVal) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SliceDepth( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SliceDepth( 
            /* [in] */ double pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SectionPlaneOffset( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SectionPlaneOffset( 
            /* [in] */ double pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSection2Vtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSection2 * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSection2 * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSection2 * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSection2 * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSection2 * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSection2 * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSection2 * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadSection2 * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSection2 * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadSection2 * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadSection2 * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadSection2 * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadSection2 * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadSection2 * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadSection2 * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadSection2 * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadSection2 * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadSection2 * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadSection2 * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadSection2 * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadSection2 * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSection2 * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadSection2 * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSection2 * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadSection2 * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSection2 * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadSection2 * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadSection2 * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadSection2 * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadSection2 * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadSection2 * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadSection2 * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadSection2 * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadSection2 * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSection2 * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadSection2 * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSection2 * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadSection2 * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadSection2 * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadSection2 * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSection2 * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadSection2 * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadSection2 * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadSection2 * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadSection2 * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSection2 * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSection2 * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadSection2 * This,
            /* [retval][out] */ BSTR *pbstrName);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadSection2 * This,
            /* [in] */ BSTR pbstrName);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_State)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_State )( 
            IGcadSection2 * This,
            /* [retval][out] */ GcSectionState *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_State)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_State )( 
            IGcadSection2 * This,
            /* [in] */ GcSectionState pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_ViewingDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ViewingDirection )( 
            IGcadSection2 * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_ViewingDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ViewingDirection )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_VerticalDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalDirection )( 
            IGcadSection2 * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_VerticalDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VerticalDirection )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Normal)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            IGcadSection2 * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_LiveSectionEnabled)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LiveSectionEnabled )( 
            IGcadSection2 * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_LiveSectionEnabled)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LiveSectionEnabled )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_IndicatorTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IndicatorTransparency )( 
            IGcadSection2 * This,
            /* [retval][out] */ int *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_IndicatorTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IndicatorTransparency )( 
            IGcadSection2 * This,
            /* [in] */ int pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_IndicatorFillColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IndicatorFillColor )( 
            IGcadSection2 * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_IndicatorFillColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IndicatorFillColor )( 
            IGcadSection2 * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Elevation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Elevation )( 
            IGcadSection2 * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_Elevation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Elevation )( 
            IGcadSection2 * This,
            /* [in] */ double pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_TopHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TopHeight )( 
            IGcadSection2 * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_TopHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TopHeight )( 
            IGcadSection2 * This,
            /* [in] */ double pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_BottomHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BottomHeight )( 
            IGcadSection2 * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_BottomHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BottomHeight )( 
            IGcadSection2 * This,
            /* [in] */ double pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_NumVertices)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumVertices )( 
            IGcadSection2 * This,
            /* [retval][out] */ int *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Vertices)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Vertices )( 
            IGcadSection2 * This,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_Vertices)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Vertices )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcadSection2 * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcadSection2 * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection, AddVertex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddVertex )( 
            IGcadSection2 * This,
            /* [in] */ int nIndex,
            /* [in] */ VARIANT val);
        
        DECLSPEC_XFGVIRT(IGcadSection, RemoveVertex)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveVertex )( 
            IGcadSection2 * This,
            /* [in] */ int nIndex);
        
        DECLSPEC_XFGVIRT(IGcadSection, HitTest)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HitTest )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT varPtHit,
            /* [out] */ VARIANT_BOOL *pHit,
            /* [out] */ int *pSegmentIndex,
            /* [out] */ VARIANT *pPtOnSegment,
            /* [out] */ GcSectionSubItem *pSubItem);
        
        DECLSPEC_XFGVIRT(IGcadSection, CreateJog)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateJog )( 
            IGcadSection2 * This,
            /* [in] */ VARIANT varPt);
        
        DECLSPEC_XFGVIRT(IGcadSection, get_Settings)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Settings )( 
            IGcadSection2 * This,
            /* [retval][out] */ IGcadSectionSettings **pUnk);
        
        DECLSPEC_XFGVIRT(IGcadSection, GenerateSectionGeometry)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GenerateSectionGeometry )( 
            IGcadSection2 * This,
            /* [in] */ IGcadEntity *pEntity,
            /* [out] */ VARIANT *pIntersectionBoundaryObjs,
            /* [out] */ VARIANT *pIntersectionFillObjs,
            /* [out] */ VARIANT *pBackgroudnObjs,
            /* [out] */ VARIANT *pForegroudObjs,
            /* [out] */ VARIANT *pCurveTangencyObjs);
        
        DECLSPEC_XFGVIRT(IGcadSection2, get_State2)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_State2 )( 
            IGcadSection2 * This,
            /* [retval][out] */ GcSectionState2 *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection2, put_State2)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_State2 )( 
            IGcadSection2 * This,
            /* [in] */ GcSectionState2 pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection2, get_SliceDepth)
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SliceDepth )( 
            IGcadSection2 * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection2, put_SliceDepth)
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SliceDepth )( 
            IGcadSection2 * This,
            /* [in] */ double pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection2, get_SectionPlaneOffset)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SectionPlaneOffset )( 
            IGcadSection2 * This,
            /* [retval][out] */ double *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSection2, put_SectionPlaneOffset)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SectionPlaneOffset )( 
            IGcadSection2 * This,
            /* [in] */ double pVal);
        
        END_INTERFACE
    } IGcadSection2Vtbl;

    interface IGcadSection2
    {
        CONST_VTBL struct IGcadSection2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSection2_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSection2_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSection2_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSection2_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSection2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSection2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSection2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSection2_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadSection2_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSection2_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadSection2_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadSection2_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadSection2_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadSection2_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadSection2_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadSection2_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadSection2_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadSection2_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadSection2_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadSection2_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadSection2_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadSection2_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadSection2_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSection2_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadSection2_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSection2_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadSection2_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSection2_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadSection2_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadSection2_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadSection2_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadSection2_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadSection2_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadSection2_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadSection2_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadSection2_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadSection2_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadSection2_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadSection2_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadSection2_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadSection2_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadSection2_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadSection2_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadSection2_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadSection2_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSection2_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadSection2_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSection2_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadSection2_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadSection2_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadSection2_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadSection2_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadSection2_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadSection2_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadSection2_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadSection2_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadSection2_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadSection2_get_Name(This,pbstrName)	\
    ( (This)->lpVtbl -> get_Name(This,pbstrName) ) 

#define IGcadSection2_put_Name(This,pbstrName)	\
    ( (This)->lpVtbl -> put_Name(This,pbstrName) ) 

#define IGcadSection2_get_State(This,pVal)	\
    ( (This)->lpVtbl -> get_State(This,pVal) ) 

#define IGcadSection2_put_State(This,pVal)	\
    ( (This)->lpVtbl -> put_State(This,pVal) ) 

#define IGcadSection2_get_ViewingDirection(This,pVal)	\
    ( (This)->lpVtbl -> get_ViewingDirection(This,pVal) ) 

#define IGcadSection2_put_ViewingDirection(This,pVal)	\
    ( (This)->lpVtbl -> put_ViewingDirection(This,pVal) ) 

#define IGcadSection2_get_VerticalDirection(This,pVal)	\
    ( (This)->lpVtbl -> get_VerticalDirection(This,pVal) ) 

#define IGcadSection2_put_VerticalDirection(This,pVal)	\
    ( (This)->lpVtbl -> put_VerticalDirection(This,pVal) ) 

#define IGcadSection2_get_Normal(This,pVal)	\
    ( (This)->lpVtbl -> get_Normal(This,pVal) ) 

#define IGcadSection2_get_LiveSectionEnabled(This,pVal)	\
    ( (This)->lpVtbl -> get_LiveSectionEnabled(This,pVal) ) 

#define IGcadSection2_put_LiveSectionEnabled(This,pVal)	\
    ( (This)->lpVtbl -> put_LiveSectionEnabled(This,pVal) ) 

#define IGcadSection2_get_IndicatorTransparency(This,pVal)	\
    ( (This)->lpVtbl -> get_IndicatorTransparency(This,pVal) ) 

#define IGcadSection2_put_IndicatorTransparency(This,pVal)	\
    ( (This)->lpVtbl -> put_IndicatorTransparency(This,pVal) ) 

#define IGcadSection2_get_IndicatorFillColor(This,pColor)	\
    ( (This)->lpVtbl -> get_IndicatorFillColor(This,pColor) ) 

#define IGcadSection2_put_IndicatorFillColor(This,pColor)	\
    ( (This)->lpVtbl -> put_IndicatorFillColor(This,pColor) ) 

#define IGcadSection2_get_Elevation(This,pVal)	\
    ( (This)->lpVtbl -> get_Elevation(This,pVal) ) 

#define IGcadSection2_put_Elevation(This,pVal)	\
    ( (This)->lpVtbl -> put_Elevation(This,pVal) ) 

#define IGcadSection2_get_TopHeight(This,pVal)	\
    ( (This)->lpVtbl -> get_TopHeight(This,pVal) ) 

#define IGcadSection2_put_TopHeight(This,pVal)	\
    ( (This)->lpVtbl -> put_TopHeight(This,pVal) ) 

#define IGcadSection2_get_BottomHeight(This,pVal)	\
    ( (This)->lpVtbl -> get_BottomHeight(This,pVal) ) 

#define IGcadSection2_put_BottomHeight(This,pVal)	\
    ( (This)->lpVtbl -> put_BottomHeight(This,pVal) ) 

#define IGcadSection2_get_NumVertices(This,pVal)	\
    ( (This)->lpVtbl -> get_NumVertices(This,pVal) ) 

#define IGcadSection2_get_Vertices(This,pVal)	\
    ( (This)->lpVtbl -> get_Vertices(This,pVal) ) 

#define IGcadSection2_put_Vertices(This,pVal)	\
    ( (This)->lpVtbl -> put_Vertices(This,pVal) ) 

#define IGcadSection2_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcadSection2_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#define IGcadSection2_AddVertex(This,nIndex,val)	\
    ( (This)->lpVtbl -> AddVertex(This,nIndex,val) ) 

#define IGcadSection2_RemoveVertex(This,nIndex)	\
    ( (This)->lpVtbl -> RemoveVertex(This,nIndex) ) 

#define IGcadSection2_HitTest(This,varPtHit,pHit,pSegmentIndex,pPtOnSegment,pSubItem)	\
    ( (This)->lpVtbl -> HitTest(This,varPtHit,pHit,pSegmentIndex,pPtOnSegment,pSubItem) ) 

#define IGcadSection2_CreateJog(This,varPt)	\
    ( (This)->lpVtbl -> CreateJog(This,varPt) ) 

#define IGcadSection2_get_Settings(This,pUnk)	\
    ( (This)->lpVtbl -> get_Settings(This,pUnk) ) 

#define IGcadSection2_GenerateSectionGeometry(This,pEntity,pIntersectionBoundaryObjs,pIntersectionFillObjs,pBackgroudnObjs,pForegroudObjs,pCurveTangencyObjs)	\
    ( (This)->lpVtbl -> GenerateSectionGeometry(This,pEntity,pIntersectionBoundaryObjs,pIntersectionFillObjs,pBackgroudnObjs,pForegroudObjs,pCurveTangencyObjs) ) 


#define IGcadSection2_get_State2(This,pVal)	\
    ( (This)->lpVtbl -> get_State2(This,pVal) ) 

#define IGcadSection2_put_State2(This,pVal)	\
    ( (This)->lpVtbl -> put_State2(This,pVal) ) 

#define IGcadSection2_get_SliceDepth(This,pVal)	\
    ( (This)->lpVtbl -> get_SliceDepth(This,pVal) ) 

#define IGcadSection2_put_SliceDepth(This,pVal)	\
    ( (This)->lpVtbl -> put_SliceDepth(This,pVal) ) 

#define IGcadSection2_get_SectionPlaneOffset(This,pVal)	\
    ( (This)->lpVtbl -> get_SectionPlaneOffset(This,pVal) ) 

#define IGcadSection2_put_SectionPlaneOffset(This,pVal)	\
    ( (This)->lpVtbl -> put_SectionPlaneOffset(This,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSection2_INTERFACE_DEFINED__ */


#ifndef __IGcadUnderlay_INTERFACE_DEFINED__
#define __IGcadUnderlay_INTERFACE_DEFINED__

/* interface IGcadUnderlay */
/* [unique][oleautomation][dual][uuid][object] */ 


EXTERN_C const IID IID_IGcadUnderlay;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("78A705C7-0B90-4FBC-AF7A-AFFAEDD2CC1F")
    IGcadUnderlay : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Contrast( 
            /* [retval][out] */ long *Contrast) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Contrast( 
            /* [in] */ long Contrast) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Fade( 
            /* [retval][out] */ long *Fade) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Fade( 
            /* [in] */ long Fade) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Position( 
            /* [retval][out] */ VARIANT *pos) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Position( 
            /* [in] */ VARIANT pos) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Width( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnderlayName( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UnderlayName( 
            /* [in] */ BSTR Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ItemName( 
            /* [in] */ BSTR sheetName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ItemName( 
            /* [retval][out] */ BSTR *sheetName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Monochrome( 
            /* [retval][out] */ VARIANT_BOOL *bMono) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Monochrome( 
            /* [in] */ VARIANT_BOOL bMono) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AdjustForBackground( 
            /* [retval][out] */ VARIANT_BOOL *Value) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AdjustForBackground( 
            /* [in] */ VARIANT_BOOL Value) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClipBoundary( 
            /* [in] */ VARIANT boundry) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor( 
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor( 
            /* [in] */ GCAD_NOUNITS ScaleFactor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_File( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_File( 
            /* [in] */ BSTR Name) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnderlayVisibility( 
            /* [retval][out] */ VARIANT_BOOL *fVisible) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UnderlayVisibility( 
            /* [in] */ VARIANT_BOOL fVisible) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ClippingEnabled( 
            /* [retval][out] */ VARIANT_BOOL *kClip) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ClippingEnabled( 
            /* [in] */ VARIANT_BOOL kClip) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnderlayLayerOverrideApplied( 
            /* [retval][out] */ GcUnderlayLayerOverrideType *bOverride) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UnderlayLayerOverrideApplied( 
            /* [in] */ GcUnderlayLayerOverrideType bOverride) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadUnderlayVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadUnderlay * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadUnderlay * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadUnderlay * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadUnderlay * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadUnderlay * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadUnderlay * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadUnderlay * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadUnderlay * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadUnderlay * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadUnderlay * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadUnderlay * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadUnderlay * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadUnderlay * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadUnderlay * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadUnderlay * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadUnderlay * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadUnderlay * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadUnderlay * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadUnderlay * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadUnderlay * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadUnderlay * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadUnderlay * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadUnderlay * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadUnderlay * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadUnderlay * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadUnderlay * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadUnderlay * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadUnderlay * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadUnderlay * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadUnderlay * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadUnderlay * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadUnderlay * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadUnderlay * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadUnderlay * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadUnderlay * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadUnderlay * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadUnderlay * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadUnderlay * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadUnderlay * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadUnderlay * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadUnderlay * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadUnderlay * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadUnderlay * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadUnderlay * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadUnderlay * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Contrast)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Contrast )( 
            IGcadUnderlay * This,
            /* [retval][out] */ long *Contrast);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Contrast)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Contrast )( 
            IGcadUnderlay * This,
            /* [in] */ long Contrast);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Fade)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fade )( 
            IGcadUnderlay * This,
            /* [retval][out] */ long *Fade);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Fade)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fade )( 
            IGcadUnderlay * This,
            /* [in] */ long Fade);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Position)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Position )( 
            IGcadUnderlay * This,
            /* [retval][out] */ VARIANT *pos);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Position)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Position )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT pos);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadUnderlay * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadUnderlay * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadUnderlay * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Width)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( 
            IGcadUnderlay * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadUnderlay * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadUnderlay * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_UnderlayName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnderlayName )( 
            IGcadUnderlay * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_UnderlayName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnderlayName )( 
            IGcadUnderlay * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_ItemName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ItemName )( 
            IGcadUnderlay * This,
            /* [in] */ BSTR sheetName);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_ItemName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ItemName )( 
            IGcadUnderlay * This,
            /* [retval][out] */ BSTR *sheetName);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Monochrome)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Monochrome )( 
            IGcadUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *bMono);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Monochrome)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Monochrome )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT_BOOL bMono);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_AdjustForBackground)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdjustForBackground )( 
            IGcadUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *Value);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_AdjustForBackground)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AdjustForBackground )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT_BOOL Value);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, ClipBoundary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClipBoundary )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT boundry);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadUnderlay * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadUnderlay * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_File)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_File )( 
            IGcadUnderlay * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_File)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_File )( 
            IGcadUnderlay * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_UnderlayVisibility)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnderlayVisibility )( 
            IGcadUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *fVisible);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_UnderlayVisibility)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnderlayVisibility )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT_BOOL fVisible);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_ClippingEnabled)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ClippingEnabled )( 
            IGcadUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *kClip);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_ClippingEnabled)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClippingEnabled )( 
            IGcadUnderlay * This,
            /* [in] */ VARIANT_BOOL kClip);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_UnderlayLayerOverrideApplied)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnderlayLayerOverrideApplied )( 
            IGcadUnderlay * This,
            /* [retval][out] */ GcUnderlayLayerOverrideType *bOverride);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_UnderlayLayerOverrideApplied)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnderlayLayerOverrideApplied )( 
            IGcadUnderlay * This,
            /* [in] */ GcUnderlayLayerOverrideType bOverride);
        
        END_INTERFACE
    } IGcadUnderlayVtbl;

    interface IGcadUnderlay
    {
        CONST_VTBL struct IGcadUnderlayVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadUnderlay_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadUnderlay_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadUnderlay_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadUnderlay_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadUnderlay_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadUnderlay_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadUnderlay_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadUnderlay_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadUnderlay_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadUnderlay_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadUnderlay_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadUnderlay_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadUnderlay_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadUnderlay_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadUnderlay_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadUnderlay_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadUnderlay_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadUnderlay_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadUnderlay_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadUnderlay_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadUnderlay_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadUnderlay_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadUnderlay_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadUnderlay_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadUnderlay_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadUnderlay_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadUnderlay_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadUnderlay_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadUnderlay_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadUnderlay_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadUnderlay_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadUnderlay_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadUnderlay_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadUnderlay_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadUnderlay_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadUnderlay_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadUnderlay_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadUnderlay_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadUnderlay_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadUnderlay_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadUnderlay_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadUnderlay_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadUnderlay_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadUnderlay_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadUnderlay_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadUnderlay_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadUnderlay_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadUnderlay_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadUnderlay_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadUnderlay_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadUnderlay_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadUnderlay_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadUnderlay_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadUnderlay_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadUnderlay_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadUnderlay_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadUnderlay_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadUnderlay_get_Contrast(This,Contrast)	\
    ( (This)->lpVtbl -> get_Contrast(This,Contrast) ) 

#define IGcadUnderlay_put_Contrast(This,Contrast)	\
    ( (This)->lpVtbl -> put_Contrast(This,Contrast) ) 

#define IGcadUnderlay_get_Fade(This,Fade)	\
    ( (This)->lpVtbl -> get_Fade(This,Fade) ) 

#define IGcadUnderlay_put_Fade(This,Fade)	\
    ( (This)->lpVtbl -> put_Fade(This,Fade) ) 

#define IGcadUnderlay_get_Position(This,pos)	\
    ( (This)->lpVtbl -> get_Position(This,pos) ) 

#define IGcadUnderlay_put_Position(This,pos)	\
    ( (This)->lpVtbl -> put_Position(This,pos) ) 

#define IGcadUnderlay_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadUnderlay_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadUnderlay_get_Width(This,Width)	\
    ( (This)->lpVtbl -> get_Width(This,Width) ) 

#define IGcadUnderlay_put_Width(This,Width)	\
    ( (This)->lpVtbl -> put_Width(This,Width) ) 

#define IGcadUnderlay_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadUnderlay_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadUnderlay_get_UnderlayName(This,Name)	\
    ( (This)->lpVtbl -> get_UnderlayName(This,Name) ) 

#define IGcadUnderlay_put_UnderlayName(This,Name)	\
    ( (This)->lpVtbl -> put_UnderlayName(This,Name) ) 

#define IGcadUnderlay_put_ItemName(This,sheetName)	\
    ( (This)->lpVtbl -> put_ItemName(This,sheetName) ) 

#define IGcadUnderlay_get_ItemName(This,sheetName)	\
    ( (This)->lpVtbl -> get_ItemName(This,sheetName) ) 

#define IGcadUnderlay_get_Monochrome(This,bMono)	\
    ( (This)->lpVtbl -> get_Monochrome(This,bMono) ) 

#define IGcadUnderlay_put_Monochrome(This,bMono)	\
    ( (This)->lpVtbl -> put_Monochrome(This,bMono) ) 

#define IGcadUnderlay_get_AdjustForBackground(This,Value)	\
    ( (This)->lpVtbl -> get_AdjustForBackground(This,Value) ) 

#define IGcadUnderlay_put_AdjustForBackground(This,Value)	\
    ( (This)->lpVtbl -> put_AdjustForBackground(This,Value) ) 

#define IGcadUnderlay_ClipBoundary(This,boundry)	\
    ( (This)->lpVtbl -> ClipBoundary(This,boundry) ) 

#define IGcadUnderlay_get_ScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,ScaleFactor) ) 

#define IGcadUnderlay_put_ScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,ScaleFactor) ) 

#define IGcadUnderlay_get_File(This,Name)	\
    ( (This)->lpVtbl -> get_File(This,Name) ) 

#define IGcadUnderlay_put_File(This,Name)	\
    ( (This)->lpVtbl -> put_File(This,Name) ) 

#define IGcadUnderlay_get_UnderlayVisibility(This,fVisible)	\
    ( (This)->lpVtbl -> get_UnderlayVisibility(This,fVisible) ) 

#define IGcadUnderlay_put_UnderlayVisibility(This,fVisible)	\
    ( (This)->lpVtbl -> put_UnderlayVisibility(This,fVisible) ) 

#define IGcadUnderlay_get_ClippingEnabled(This,kClip)	\
    ( (This)->lpVtbl -> get_ClippingEnabled(This,kClip) ) 

#define IGcadUnderlay_put_ClippingEnabled(This,kClip)	\
    ( (This)->lpVtbl -> put_ClippingEnabled(This,kClip) ) 

#define IGcadUnderlay_get_UnderlayLayerOverrideApplied(This,bOverride)	\
    ( (This)->lpVtbl -> get_UnderlayLayerOverrideApplied(This,bOverride) ) 

#define IGcadUnderlay_put_UnderlayLayerOverrideApplied(This,bOverride)	\
    ( (This)->lpVtbl -> put_UnderlayLayerOverrideApplied(This,bOverride) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadUnderlay_INTERFACE_DEFINED__ */


#ifndef __IGcadDwfUnderlay_INTERFACE_DEFINED__
#define __IGcadDwfUnderlay_INTERFACE_DEFINED__

/* interface IGcadDwfUnderlay */
/* [object][oleautomation][dual][uuid] */ 


EXTERN_C const IID IID_IGcadDwfUnderlay;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DCC7E463-86DB-4343-BD67-EB3E51A0B74F")
    IGcadDwfUnderlay : public IGcadUnderlay
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DWFFormat( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DWFFormat( 
            /* [in] */ BSTR Name) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadDwfUnderlayVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadDwfUnderlay * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadDwfUnderlay * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadDwfUnderlay * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadDwfUnderlay * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadDwfUnderlay * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadDwfUnderlay * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadDwfUnderlay * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadDwfUnderlay * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadDwfUnderlay * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadDwfUnderlay * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadDwfUnderlay * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadDwfUnderlay * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadDwfUnderlay * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadDwfUnderlay * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadDwfUnderlay * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadDwfUnderlay * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadDwfUnderlay * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadDwfUnderlay * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadDwfUnderlay * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadDwfUnderlay * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadDwfUnderlay * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadDwfUnderlay * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadDwfUnderlay * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadDwfUnderlay * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Contrast)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Contrast )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ long *Contrast);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Contrast)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Contrast )( 
            IGcadDwfUnderlay * This,
            /* [in] */ long Contrast);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Fade)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fade )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ long *Fade);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Fade)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fade )( 
            IGcadDwfUnderlay * This,
            /* [in] */ long Fade);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Position)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Position )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ VARIANT *pos);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Position)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Position )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT pos);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadDwfUnderlay * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Width)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( 
            IGcadDwfUnderlay * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadDwfUnderlay * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_UnderlayName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnderlayName )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_UnderlayName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnderlayName )( 
            IGcadDwfUnderlay * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_ItemName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ItemName )( 
            IGcadDwfUnderlay * This,
            /* [in] */ BSTR sheetName);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_ItemName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ItemName )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *sheetName);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_Monochrome)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Monochrome )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *bMono);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_Monochrome)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Monochrome )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT_BOOL bMono);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_AdjustForBackground)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdjustForBackground )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *Value);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_AdjustForBackground)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AdjustForBackground )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT_BOOL Value);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, ClipBoundary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClipBoundary )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT boundry);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadDwfUnderlay * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_File)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_File )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_File)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_File )( 
            IGcadDwfUnderlay * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_UnderlayVisibility)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnderlayVisibility )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *fVisible);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_UnderlayVisibility)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnderlayVisibility )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT_BOOL fVisible);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_ClippingEnabled)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ClippingEnabled )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ VARIANT_BOOL *kClip);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_ClippingEnabled)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClippingEnabled )( 
            IGcadDwfUnderlay * This,
            /* [in] */ VARIANT_BOOL kClip);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, get_UnderlayLayerOverrideApplied)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnderlayLayerOverrideApplied )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ GcUnderlayLayerOverrideType *bOverride);
        
        DECLSPEC_XFGVIRT(IGcadUnderlay, put_UnderlayLayerOverrideApplied)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UnderlayLayerOverrideApplied )( 
            IGcadDwfUnderlay * This,
            /* [in] */ GcUnderlayLayerOverrideType bOverride);
        
        DECLSPEC_XFGVIRT(IGcadDwfUnderlay, get_DWFFormat)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DWFFormat )( 
            IGcadDwfUnderlay * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadDwfUnderlay, put_DWFFormat)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DWFFormat )( 
            IGcadDwfUnderlay * This,
            /* [in] */ BSTR Name);
        
        END_INTERFACE
    } IGcadDwfUnderlayVtbl;

    interface IGcadDwfUnderlay
    {
        CONST_VTBL struct IGcadDwfUnderlayVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadDwfUnderlay_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadDwfUnderlay_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadDwfUnderlay_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadDwfUnderlay_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadDwfUnderlay_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadDwfUnderlay_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadDwfUnderlay_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadDwfUnderlay_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadDwfUnderlay_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadDwfUnderlay_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadDwfUnderlay_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadDwfUnderlay_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadDwfUnderlay_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadDwfUnderlay_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadDwfUnderlay_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadDwfUnderlay_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadDwfUnderlay_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadDwfUnderlay_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadDwfUnderlay_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadDwfUnderlay_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadDwfUnderlay_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadDwfUnderlay_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadDwfUnderlay_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadDwfUnderlay_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadDwfUnderlay_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadDwfUnderlay_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadDwfUnderlay_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadDwfUnderlay_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadDwfUnderlay_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadDwfUnderlay_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadDwfUnderlay_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadDwfUnderlay_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadDwfUnderlay_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadDwfUnderlay_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadDwfUnderlay_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadDwfUnderlay_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadDwfUnderlay_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadDwfUnderlay_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadDwfUnderlay_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadDwfUnderlay_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadDwfUnderlay_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadDwfUnderlay_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadDwfUnderlay_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadDwfUnderlay_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadDwfUnderlay_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadDwfUnderlay_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadDwfUnderlay_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadDwfUnderlay_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadDwfUnderlay_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadDwfUnderlay_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadDwfUnderlay_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadDwfUnderlay_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadDwfUnderlay_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadDwfUnderlay_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadDwfUnderlay_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadDwfUnderlay_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadDwfUnderlay_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadDwfUnderlay_get_Contrast(This,Contrast)	\
    ( (This)->lpVtbl -> get_Contrast(This,Contrast) ) 

#define IGcadDwfUnderlay_put_Contrast(This,Contrast)	\
    ( (This)->lpVtbl -> put_Contrast(This,Contrast) ) 

#define IGcadDwfUnderlay_get_Fade(This,Fade)	\
    ( (This)->lpVtbl -> get_Fade(This,Fade) ) 

#define IGcadDwfUnderlay_put_Fade(This,Fade)	\
    ( (This)->lpVtbl -> put_Fade(This,Fade) ) 

#define IGcadDwfUnderlay_get_Position(This,pos)	\
    ( (This)->lpVtbl -> get_Position(This,pos) ) 

#define IGcadDwfUnderlay_put_Position(This,pos)	\
    ( (This)->lpVtbl -> put_Position(This,pos) ) 

#define IGcadDwfUnderlay_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadDwfUnderlay_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadDwfUnderlay_get_Width(This,Width)	\
    ( (This)->lpVtbl -> get_Width(This,Width) ) 

#define IGcadDwfUnderlay_put_Width(This,Width)	\
    ( (This)->lpVtbl -> put_Width(This,Width) ) 

#define IGcadDwfUnderlay_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadDwfUnderlay_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadDwfUnderlay_get_UnderlayName(This,Name)	\
    ( (This)->lpVtbl -> get_UnderlayName(This,Name) ) 

#define IGcadDwfUnderlay_put_UnderlayName(This,Name)	\
    ( (This)->lpVtbl -> put_UnderlayName(This,Name) ) 

#define IGcadDwfUnderlay_put_ItemName(This,sheetName)	\
    ( (This)->lpVtbl -> put_ItemName(This,sheetName) ) 

#define IGcadDwfUnderlay_get_ItemName(This,sheetName)	\
    ( (This)->lpVtbl -> get_ItemName(This,sheetName) ) 

#define IGcadDwfUnderlay_get_Monochrome(This,bMono)	\
    ( (This)->lpVtbl -> get_Monochrome(This,bMono) ) 

#define IGcadDwfUnderlay_put_Monochrome(This,bMono)	\
    ( (This)->lpVtbl -> put_Monochrome(This,bMono) ) 

#define IGcadDwfUnderlay_get_AdjustForBackground(This,Value)	\
    ( (This)->lpVtbl -> get_AdjustForBackground(This,Value) ) 

#define IGcadDwfUnderlay_put_AdjustForBackground(This,Value)	\
    ( (This)->lpVtbl -> put_AdjustForBackground(This,Value) ) 

#define IGcadDwfUnderlay_ClipBoundary(This,boundry)	\
    ( (This)->lpVtbl -> ClipBoundary(This,boundry) ) 

#define IGcadDwfUnderlay_get_ScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,ScaleFactor) ) 

#define IGcadDwfUnderlay_put_ScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,ScaleFactor) ) 

#define IGcadDwfUnderlay_get_File(This,Name)	\
    ( (This)->lpVtbl -> get_File(This,Name) ) 

#define IGcadDwfUnderlay_put_File(This,Name)	\
    ( (This)->lpVtbl -> put_File(This,Name) ) 

#define IGcadDwfUnderlay_get_UnderlayVisibility(This,fVisible)	\
    ( (This)->lpVtbl -> get_UnderlayVisibility(This,fVisible) ) 

#define IGcadDwfUnderlay_put_UnderlayVisibility(This,fVisible)	\
    ( (This)->lpVtbl -> put_UnderlayVisibility(This,fVisible) ) 

#define IGcadDwfUnderlay_get_ClippingEnabled(This,kClip)	\
    ( (This)->lpVtbl -> get_ClippingEnabled(This,kClip) ) 

#define IGcadDwfUnderlay_put_ClippingEnabled(This,kClip)	\
    ( (This)->lpVtbl -> put_ClippingEnabled(This,kClip) ) 

#define IGcadDwfUnderlay_get_UnderlayLayerOverrideApplied(This,bOverride)	\
    ( (This)->lpVtbl -> get_UnderlayLayerOverrideApplied(This,bOverride) ) 

#define IGcadDwfUnderlay_put_UnderlayLayerOverrideApplied(This,bOverride)	\
    ( (This)->lpVtbl -> put_UnderlayLayerOverrideApplied(This,bOverride) ) 


#define IGcadDwfUnderlay_get_DWFFormat(This,Name)	\
    ( (This)->lpVtbl -> get_DWFFormat(This,Name) ) 

#define IGcadDwfUnderlay_put_DWFFormat(This,Name)	\
    ( (This)->lpVtbl -> put_DWFFormat(This,Name) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadDwfUnderlay_INTERFACE_DEFINED__ */


#ifndef __IGcadSubEntSolidFace_INTERFACE_DEFINED__
#define __IGcadSubEntSolidFace_INTERFACE_DEFINED__

/* interface IGcadSubEntSolidFace */
/* [object][oleautomation][dual][uuid] */ 


EXTERN_C const IID IID_IGcadSubEntSolidFace;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9EED0C48-27BB-4914-B126-906731A7232C")
    IGcadSubEntSolidFace : public IGcadSubEntity
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Material( 
            /* [retval][out] */ BSTR *Material) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Material( 
            /* [in] */ BSTR Material) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSubEntSolidFaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSubEntSolidFace * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSubEntSolidFace * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSubEntSolidFace * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSubEntSolidFace * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSubEntSolidFace * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSubEntSolidFace * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSubEntSolidFace * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, OnModified)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OnModified )( 
            IGcadSubEntSolidFace * This);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSubEntSolidFace * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Color)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSubEntSolidFace * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, put_Color)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSubEntSolidFace * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSubEntSolidFace * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSubEntSolidFace * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSubEntSolidFace * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSubEntSolidFace * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSubEntSolidFace * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSubEntSolidFace * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadSubEntSolidFace, get_Material)
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadSubEntSolidFace * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadSubEntSolidFace, put_Material)
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadSubEntSolidFace * This,
            /* [in] */ BSTR Material);
        
        END_INTERFACE
    } IGcadSubEntSolidFaceVtbl;

    interface IGcadSubEntSolidFace
    {
        CONST_VTBL struct IGcadSubEntSolidFaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSubEntSolidFace_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSubEntSolidFace_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSubEntSolidFace_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSubEntSolidFace_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSubEntSolidFace_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSubEntSolidFace_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSubEntSolidFace_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSubEntSolidFace_OnModified(This)	\
    ( (This)->lpVtbl -> OnModified(This) ) 

#define IGcadSubEntSolidFace_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSubEntSolidFace_get_Color(This,pColor)	\
    ( (This)->lpVtbl -> get_Color(This,pColor) ) 

#define IGcadSubEntSolidFace_put_Color(This,pColor)	\
    ( (This)->lpVtbl -> put_Color(This,pColor) ) 

#define IGcadSubEntSolidFace_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSubEntSolidFace_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSubEntSolidFace_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSubEntSolidFace_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSubEntSolidFace_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSubEntSolidFace_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 


#define IGcadSubEntSolidFace_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadSubEntSolidFace_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSubEntSolidFace_INTERFACE_DEFINED__ */


#ifndef __IGcadSubEntSolidEdge_INTERFACE_DEFINED__
#define __IGcadSubEntSolidEdge_INTERFACE_DEFINED__

/* interface IGcadSubEntSolidEdge */
/* [object][oleautomation][dual][uuid] */ 


EXTERN_C const IID IID_IGcadSubEntSolidEdge;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8DEBA02A-C534-4537-BF8C-73217087F718")
    IGcadSubEntSolidEdge : public IGcadSubEntity
    {
    public:
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSubEntSolidEdgeVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSubEntSolidEdge * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSubEntSolidEdge * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSubEntSolidEdge * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSubEntSolidEdge * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSubEntSolidEdge * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSubEntSolidEdge * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSubEntSolidEdge * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, OnModified)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OnModified )( 
            IGcadSubEntSolidEdge * This);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSubEntSolidEdge * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Color)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSubEntSolidEdge * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, put_Color)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSubEntSolidEdge * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSubEntSolidEdge * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSubEntSolidEdge * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSubEntSolidEdge * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSubEntSolidEdge * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSubEntSolidEdge * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSubEntSolidEdge * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        END_INTERFACE
    } IGcadSubEntSolidEdgeVtbl;

    interface IGcadSubEntSolidEdge
    {
        CONST_VTBL struct IGcadSubEntSolidEdgeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSubEntSolidEdge_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSubEntSolidEdge_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSubEntSolidEdge_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSubEntSolidEdge_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSubEntSolidEdge_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSubEntSolidEdge_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSubEntSolidEdge_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSubEntSolidEdge_OnModified(This)	\
    ( (This)->lpVtbl -> OnModified(This) ) 

#define IGcadSubEntSolidEdge_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSubEntSolidEdge_get_Color(This,pColor)	\
    ( (This)->lpVtbl -> get_Color(This,pColor) ) 

#define IGcadSubEntSolidEdge_put_Color(This,pColor)	\
    ( (This)->lpVtbl -> put_Color(This,pColor) ) 

#define IGcadSubEntSolidEdge_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSubEntSolidEdge_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSubEntSolidEdge_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSubEntSolidEdge_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSubEntSolidEdge_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSubEntSolidEdge_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSubEntSolidEdge_INTERFACE_DEFINED__ */


#ifndef __IGcadSubEntSolidVertex_INTERFACE_DEFINED__
#define __IGcadSubEntSolidVertex_INTERFACE_DEFINED__

/* interface IGcadSubEntSolidVertex */
/* [object][oleautomation][dual][uuid] */ 


EXTERN_C const IID IID_IGcadSubEntSolidVertex;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("15B24509-49A0-4088-8945-1CF007780C0D")
    IGcadSubEntSolidVertex : public IGcadSubEntity
    {
    public:
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSubEntSolidVertexVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSubEntSolidVertex * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSubEntSolidVertex * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSubEntSolidVertex * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSubEntSolidVertex * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSubEntSolidVertex * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSubEntSolidVertex * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSubEntSolidVertex * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, OnModified)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OnModified )( 
            IGcadSubEntSolidVertex * This);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSubEntSolidVertex * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Color)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSubEntSolidVertex * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, put_Color)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSubEntSolidVertex * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSubEntSolidVertex * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSubEntSolidVertex * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSubEntSolidVertex * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSubEntSolidVertex * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSubEntSolidVertex * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSubEntSolidVertex * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        END_INTERFACE
    } IGcadSubEntSolidVertexVtbl;

    interface IGcadSubEntSolidVertex
    {
        CONST_VTBL struct IGcadSubEntSolidVertexVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSubEntSolidVertex_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSubEntSolidVertex_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSubEntSolidVertex_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSubEntSolidVertex_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSubEntSolidVertex_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSubEntSolidVertex_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSubEntSolidVertex_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSubEntSolidVertex_OnModified(This)	\
    ( (This)->lpVtbl -> OnModified(This) ) 

#define IGcadSubEntSolidVertex_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSubEntSolidVertex_get_Color(This,pColor)	\
    ( (This)->lpVtbl -> get_Color(This,pColor) ) 

#define IGcadSubEntSolidVertex_put_Color(This,pColor)	\
    ( (This)->lpVtbl -> put_Color(This,pColor) ) 

#define IGcadSubEntSolidVertex_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSubEntSolidVertex_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSubEntSolidVertex_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSubEntSolidVertex_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSubEntSolidVertex_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSubEntSolidVertex_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSubEntSolidVertex_INTERFACE_DEFINED__ */


#ifndef __IGcadSubEntSolidNode_INTERFACE_DEFINED__
#define __IGcadSubEntSolidNode_INTERFACE_DEFINED__

/* interface IGcadSubEntSolidNode */
/* [object][oleautomation][dual][uuid] */ 


EXTERN_C const IID IID_IGcadSubEntSolidNode;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4435CC05-F041-4129-B4ED-F5D4C2D31F1E")
    IGcadSubEntSolidNode : public IGcadSubEntity
    {
    public:
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSubEntSolidNodeVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSubEntSolidNode * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSubEntSolidNode * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSubEntSolidNode * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSubEntSolidNode * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSubEntSolidNode * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSubEntSolidNode * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSubEntSolidNode * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, OnModified)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OnModified )( 
            IGcadSubEntSolidNode * This);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSubEntSolidNode * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Color)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSubEntSolidNode * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, put_Color)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSubEntSolidNode * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSubEntSolidNode * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSubEntSolidNode * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSubEntSolidNode * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSubEntSolidNode * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSubEntSolidNode * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSubEntSolidNode * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        END_INTERFACE
    } IGcadSubEntSolidNodeVtbl;

    interface IGcadSubEntSolidNode
    {
        CONST_VTBL struct IGcadSubEntSolidNodeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSubEntSolidNode_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSubEntSolidNode_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSubEntSolidNode_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSubEntSolidNode_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSubEntSolidNode_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSubEntSolidNode_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSubEntSolidNode_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSubEntSolidNode_OnModified(This)	\
    ( (This)->lpVtbl -> OnModified(This) ) 

#define IGcadSubEntSolidNode_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSubEntSolidNode_get_Color(This,pColor)	\
    ( (This)->lpVtbl -> get_Color(This,pColor) ) 

#define IGcadSubEntSolidNode_put_Color(This,pColor)	\
    ( (This)->lpVtbl -> put_Color(This,pColor) ) 

#define IGcadSubEntSolidNode_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSubEntSolidNode_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSubEntSolidNode_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSubEntSolidNode_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSubEntSolidNode_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSubEntSolidNode_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSubEntSolidNode_INTERFACE_DEFINED__ */


#ifndef __IGcadWipeout_INTERFACE_DEFINED__
#define __IGcadWipeout_INTERFACE_DEFINED__

/* interface IGcadWipeout */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadWipeout;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F32F5FA4-1B1A-486E-85CD-0C3007D53D89")
    IGcadWipeout : public IGcadRasterImage
    {
    public:
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadWipeoutVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadWipeout * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadWipeout * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadWipeout * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadWipeout * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadWipeout * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadWipeout * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadWipeout * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadWipeout * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadWipeout * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadWipeout * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadWipeout * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadWipeout * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadWipeout * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadWipeout * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadWipeout * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadWipeout * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadWipeout * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadWipeout * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadWipeout * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadWipeout * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadWipeout * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadWipeout * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadWipeout * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadWipeout * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadWipeout * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadWipeout * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadWipeout * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadWipeout * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadWipeout * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadWipeout * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadWipeout * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadWipeout * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadWipeout * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadWipeout * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadWipeout * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadWipeout * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadWipeout * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadWipeout * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadWipeout * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadWipeout * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadWipeout * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadWipeout * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadWipeout * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadWipeout * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadWipeout * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadWipeout * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadWipeout * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Brightness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Brightness )( 
            IGcadWipeout * This,
            /* [retval][out] */ long *Brightness);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Brightness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Brightness )( 
            IGcadWipeout * This,
            /* [in] */ long Brightness);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Contrast)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Contrast )( 
            IGcadWipeout * This,
            /* [retval][out] */ long *Contrast);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Contrast)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Contrast )( 
            IGcadWipeout * This,
            /* [in] */ long Contrast);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Fade)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fade )( 
            IGcadWipeout * This,
            /* [retval][out] */ long *Fade);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Fade)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fade )( 
            IGcadWipeout * This,
            /* [in] */ long Fade);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Origin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Origin )( 
            IGcadWipeout * This,
            /* [retval][out] */ VARIANT *Origin);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Origin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Origin )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT Origin);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadWipeout * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadWipeout * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageWidth )( 
            IGcadWipeout * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageWidth )( 
            IGcadWipeout * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageHeight )( 
            IGcadWipeout * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageHeight )( 
            IGcadWipeout * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadWipeout * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadWipeout * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageFile)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageFile )( 
            IGcadWipeout * This,
            /* [in] */ BSTR imageFileName);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageFile)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageFile )( 
            IGcadWipeout * This,
            /* [retval][out] */ BSTR *imageFileName);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageVisibility)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageVisibility )( 
            IGcadWipeout * This,
            /* [retval][out] */ VARIANT_BOOL *fVisible);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageVisibility)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageVisibility )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT_BOOL fVisible);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ClippingEnabled)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ClippingEnabled )( 
            IGcadWipeout * This,
            /* [retval][out] */ VARIANT_BOOL *kClip);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ClippingEnabled)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClippingEnabled )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT_BOOL kClip);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_transparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_transparency )( 
            IGcadWipeout * This,
            /* [retval][out] */ VARIANT_BOOL *bTransp);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_transparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_transparency )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT_BOOL bTransp);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, ClipBoundary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClipBoundary )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT boundry);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadWipeout * This,
            /* [retval][out] */ double *pixelHeight);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadWipeout * This,
            /* [retval][out] */ double *pixelWidth);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ShowRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowRotation )( 
            IGcadWipeout * This,
            /* [retval][out] */ VARIANT_BOOL *bShow);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ShowRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowRotation )( 
            IGcadWipeout * This,
            /* [in] */ VARIANT_BOOL bShow);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadWipeout * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadWipeout * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        END_INTERFACE
    } IGcadWipeoutVtbl;

    interface IGcadWipeout
    {
        CONST_VTBL struct IGcadWipeoutVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadWipeout_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadWipeout_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadWipeout_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadWipeout_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadWipeout_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadWipeout_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadWipeout_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadWipeout_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadWipeout_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadWipeout_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadWipeout_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadWipeout_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadWipeout_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadWipeout_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadWipeout_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadWipeout_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadWipeout_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadWipeout_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadWipeout_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadWipeout_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadWipeout_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadWipeout_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadWipeout_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadWipeout_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadWipeout_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadWipeout_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadWipeout_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadWipeout_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadWipeout_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadWipeout_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadWipeout_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadWipeout_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadWipeout_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadWipeout_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadWipeout_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadWipeout_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadWipeout_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadWipeout_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadWipeout_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadWipeout_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadWipeout_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadWipeout_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadWipeout_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadWipeout_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadWipeout_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadWipeout_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadWipeout_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadWipeout_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadWipeout_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadWipeout_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadWipeout_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadWipeout_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadWipeout_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadWipeout_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadWipeout_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadWipeout_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadWipeout_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadWipeout_get_Brightness(This,Brightness)	\
    ( (This)->lpVtbl -> get_Brightness(This,Brightness) ) 

#define IGcadWipeout_put_Brightness(This,Brightness)	\
    ( (This)->lpVtbl -> put_Brightness(This,Brightness) ) 

#define IGcadWipeout_get_Contrast(This,Contrast)	\
    ( (This)->lpVtbl -> get_Contrast(This,Contrast) ) 

#define IGcadWipeout_put_Contrast(This,Contrast)	\
    ( (This)->lpVtbl -> put_Contrast(This,Contrast) ) 

#define IGcadWipeout_get_Fade(This,Fade)	\
    ( (This)->lpVtbl -> get_Fade(This,Fade) ) 

#define IGcadWipeout_put_Fade(This,Fade)	\
    ( (This)->lpVtbl -> put_Fade(This,Fade) ) 

#define IGcadWipeout_get_Origin(This,Origin)	\
    ( (This)->lpVtbl -> get_Origin(This,Origin) ) 

#define IGcadWipeout_put_Origin(This,Origin)	\
    ( (This)->lpVtbl -> put_Origin(This,Origin) ) 

#define IGcadWipeout_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadWipeout_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadWipeout_get_ImageWidth(This,Width)	\
    ( (This)->lpVtbl -> get_ImageWidth(This,Width) ) 

#define IGcadWipeout_put_ImageWidth(This,Width)	\
    ( (This)->lpVtbl -> put_ImageWidth(This,Width) ) 

#define IGcadWipeout_get_ImageHeight(This,Height)	\
    ( (This)->lpVtbl -> get_ImageHeight(This,Height) ) 

#define IGcadWipeout_put_ImageHeight(This,Height)	\
    ( (This)->lpVtbl -> put_ImageHeight(This,Height) ) 

#define IGcadWipeout_get_Name(This,Name)	\
    ( (This)->lpVtbl -> get_Name(This,Name) ) 

#define IGcadWipeout_put_Name(This,Name)	\
    ( (This)->lpVtbl -> put_Name(This,Name) ) 

#define IGcadWipeout_put_ImageFile(This,imageFileName)	\
    ( (This)->lpVtbl -> put_ImageFile(This,imageFileName) ) 

#define IGcadWipeout_get_ImageFile(This,imageFileName)	\
    ( (This)->lpVtbl -> get_ImageFile(This,imageFileName) ) 

#define IGcadWipeout_get_ImageVisibility(This,fVisible)	\
    ( (This)->lpVtbl -> get_ImageVisibility(This,fVisible) ) 

#define IGcadWipeout_put_ImageVisibility(This,fVisible)	\
    ( (This)->lpVtbl -> put_ImageVisibility(This,fVisible) ) 

#define IGcadWipeout_get_ClippingEnabled(This,kClip)	\
    ( (This)->lpVtbl -> get_ClippingEnabled(This,kClip) ) 

#define IGcadWipeout_put_ClippingEnabled(This,kClip)	\
    ( (This)->lpVtbl -> put_ClippingEnabled(This,kClip) ) 

#define IGcadWipeout_get_transparency(This,bTransp)	\
    ( (This)->lpVtbl -> get_transparency(This,bTransp) ) 

#define IGcadWipeout_put_transparency(This,bTransp)	\
    ( (This)->lpVtbl -> put_transparency(This,bTransp) ) 

#define IGcadWipeout_ClipBoundary(This,boundry)	\
    ( (This)->lpVtbl -> ClipBoundary(This,boundry) ) 

#define IGcadWipeout_get_Height(This,pixelHeight)	\
    ( (This)->lpVtbl -> get_Height(This,pixelHeight) ) 

#define IGcadWipeout_get_Width(This,pixelWidth)	\
    ( (This)->lpVtbl -> get_Width(This,pixelWidth) ) 

#define IGcadWipeout_get_ShowRotation(This,bShow)	\
    ( (This)->lpVtbl -> get_ShowRotation(This,bShow) ) 

#define IGcadWipeout_put_ShowRotation(This,bShow)	\
    ( (This)->lpVtbl -> put_ShowRotation(This,bShow) ) 

#define IGcadWipeout_get_ScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,ScaleFactor) ) 

#define IGcadWipeout_put_ScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,ScaleFactor) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadWipeout_INTERFACE_DEFINED__ */


#ifndef __IGcadSubDMesh_INTERFACE_DEFINED__
#define __IGcadSubDMesh_INTERFACE_DEFINED__

/* interface IGcadSubDMesh */
/* [object][unique][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadSubDMesh;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D594DD08-3145-43F2-B9A9-D2DDAC0E0141")
    IGcadSubDMesh : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Smoothness( 
            /* [retval][out] */ int *level) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Smoothness( 
            /* [in] */ int level) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *corners) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT corners) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinate( 
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinate( 
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_VertexCount( 
            /* [retval][out] */ int *Count) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FaceCount( 
            /* [retval][out] */ int *Count) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSubDMeshVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSubDMesh * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSubDMesh * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSubDMesh * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSubDMesh * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSubDMesh * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSubDMesh * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSubDMesh * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadSubDMesh * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadSubDMesh * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadSubDMesh * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadSubDMesh * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadSubDMesh * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadSubDMesh * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadSubDMesh * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadSubDMesh * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadSubDMesh * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadSubDMesh * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadSubDMesh * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadSubDMesh * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadSubDMesh * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadSubDMesh * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadSubDMesh * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadSubDMesh * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadSubDMesh * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadSubDMesh * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadSubDMesh * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadSubDMesh * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadSubDMesh * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadSubDMesh * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadSubDMesh * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadSubDMesh * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadSubDMesh * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadSubDMesh * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSubDMesh * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSubDMesh, get_Smoothness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Smoothness )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ int *level);
        
        DECLSPEC_XFGVIRT(IGcadSubDMesh, put_Smoothness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Smoothness )( 
            IGcadSubDMesh * This,
            /* [in] */ int level);
        
        DECLSPEC_XFGVIRT(IGcadSubDMesh, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ VARIANT *corners);
        
        DECLSPEC_XFGVIRT(IGcadSubDMesh, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcadSubDMesh * This,
            /* [in] */ VARIANT corners);
        
        DECLSPEC_XFGVIRT(IGcadSubDMesh, get_Coordinate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinate )( 
            IGcadSubDMesh * This,
            /* [in] */ int Index,
            /* [retval][out] */ VARIANT *pVal);
        
        DECLSPEC_XFGVIRT(IGcadSubDMesh, put_Coordinate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinate )( 
            IGcadSubDMesh * This,
            /* [in] */ int Index,
            /* [in] */ VARIANT pVal);
        
        DECLSPEC_XFGVIRT(IGcadSubDMesh, get_VertexCount)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VertexCount )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ int *Count);
        
        DECLSPEC_XFGVIRT(IGcadSubDMesh, get_FaceCount)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FaceCount )( 
            IGcadSubDMesh * This,
            /* [retval][out] */ int *Count);
        
        END_INTERFACE
    } IGcadSubDMeshVtbl;

    interface IGcadSubDMesh
    {
        CONST_VTBL struct IGcadSubDMeshVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSubDMesh_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSubDMesh_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSubDMesh_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSubDMesh_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSubDMesh_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSubDMesh_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSubDMesh_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSubDMesh_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadSubDMesh_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSubDMesh_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadSubDMesh_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadSubDMesh_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadSubDMesh_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadSubDMesh_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadSubDMesh_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadSubDMesh_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadSubDMesh_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadSubDMesh_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadSubDMesh_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadSubDMesh_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadSubDMesh_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadSubDMesh_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadSubDMesh_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSubDMesh_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadSubDMesh_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSubDMesh_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadSubDMesh_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSubDMesh_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadSubDMesh_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadSubDMesh_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadSubDMesh_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadSubDMesh_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadSubDMesh_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadSubDMesh_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadSubDMesh_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadSubDMesh_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadSubDMesh_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadSubDMesh_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadSubDMesh_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadSubDMesh_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadSubDMesh_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadSubDMesh_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadSubDMesh_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadSubDMesh_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadSubDMesh_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSubDMesh_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadSubDMesh_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSubDMesh_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadSubDMesh_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadSubDMesh_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadSubDMesh_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadSubDMesh_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadSubDMesh_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadSubDMesh_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadSubDMesh_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadSubDMesh_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadSubDMesh_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadSubDMesh_get_Smoothness(This,level)	\
    ( (This)->lpVtbl -> get_Smoothness(This,level) ) 

#define IGcadSubDMesh_put_Smoothness(This,level)	\
    ( (This)->lpVtbl -> put_Smoothness(This,level) ) 

#define IGcadSubDMesh_get_Coordinates(This,corners)	\
    ( (This)->lpVtbl -> get_Coordinates(This,corners) ) 

#define IGcadSubDMesh_put_Coordinates(This,corners)	\
    ( (This)->lpVtbl -> put_Coordinates(This,corners) ) 

#define IGcadSubDMesh_get_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Coordinate(This,Index,pVal) ) 

#define IGcadSubDMesh_put_Coordinate(This,Index,pVal)	\
    ( (This)->lpVtbl -> put_Coordinate(This,Index,pVal) ) 

#define IGcadSubDMesh_get_VertexCount(This,Count)	\
    ( (This)->lpVtbl -> get_VertexCount(This,Count) ) 

#define IGcadSubDMesh_get_FaceCount(This,Count)	\
    ( (This)->lpVtbl -> get_FaceCount(This,Count) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSubDMesh_INTERFACE_DEFINED__ */


#ifndef __IGcadSubDMeshFace_INTERFACE_DEFINED__
#define __IGcadSubDMeshFace_INTERFACE_DEFINED__

/* interface IGcadSubDMeshFace */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadSubDMeshFace;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B5588E69-01F9-4802-AF9F-CBDD07E0FA88")
    IGcadSubDMeshFace : public IGcadSubEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Material( 
            /* [retval][out] */ BSTR *Material) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Material( 
            /* [in] */ BSTR Material) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CreaseType( 
            /* [retval][out] */ GcMeshCreaseType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CreaseType( 
            /* [in] */ GcMeshCreaseType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CreaseLevel( 
            /* [retval][out] */ double *level) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CreaseLevel( 
            /* [in] */ double level) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSubDMeshFaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSubDMeshFace * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSubDMeshFace * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSubDMeshFace * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSubDMeshFace * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSubDMeshFace * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSubDMeshFace * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSubDMeshFace * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, OnModified)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OnModified )( 
            IGcadSubDMeshFace * This);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSubDMeshFace * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Color)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSubDMeshFace * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, put_Color)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSubDMeshFace * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSubDMeshFace * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSubDMeshFace * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSubDMeshFace * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSubDMeshFace * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSubDMeshFace * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSubDMeshFace * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshFace, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadSubDMeshFace * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshFace, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadSubDMeshFace * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshFace, get_CreaseType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CreaseType )( 
            IGcadSubDMeshFace * This,
            /* [retval][out] */ GcMeshCreaseType *Type);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshFace, put_CreaseType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CreaseType )( 
            IGcadSubDMeshFace * This,
            /* [in] */ GcMeshCreaseType Type);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshFace, get_CreaseLevel)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CreaseLevel )( 
            IGcadSubDMeshFace * This,
            /* [retval][out] */ double *level);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshFace, put_CreaseLevel)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CreaseLevel )( 
            IGcadSubDMeshFace * This,
            /* [in] */ double level);
        
        END_INTERFACE
    } IGcadSubDMeshFaceVtbl;

    interface IGcadSubDMeshFace
    {
        CONST_VTBL struct IGcadSubDMeshFaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSubDMeshFace_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSubDMeshFace_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSubDMeshFace_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSubDMeshFace_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSubDMeshFace_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSubDMeshFace_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSubDMeshFace_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSubDMeshFace_OnModified(This)	\
    ( (This)->lpVtbl -> OnModified(This) ) 

#define IGcadSubDMeshFace_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSubDMeshFace_get_Color(This,pColor)	\
    ( (This)->lpVtbl -> get_Color(This,pColor) ) 

#define IGcadSubDMeshFace_put_Color(This,pColor)	\
    ( (This)->lpVtbl -> put_Color(This,pColor) ) 

#define IGcadSubDMeshFace_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSubDMeshFace_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSubDMeshFace_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSubDMeshFace_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSubDMeshFace_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSubDMeshFace_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 


#define IGcadSubDMeshFace_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadSubDMeshFace_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadSubDMeshFace_get_CreaseType(This,Type)	\
    ( (This)->lpVtbl -> get_CreaseType(This,Type) ) 

#define IGcadSubDMeshFace_put_CreaseType(This,Type)	\
    ( (This)->lpVtbl -> put_CreaseType(This,Type) ) 

#define IGcadSubDMeshFace_get_CreaseLevel(This,level)	\
    ( (This)->lpVtbl -> get_CreaseLevel(This,level) ) 

#define IGcadSubDMeshFace_put_CreaseLevel(This,level)	\
    ( (This)->lpVtbl -> put_CreaseLevel(This,level) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSubDMeshFace_INTERFACE_DEFINED__ */


#ifndef __IGcadSubDMeshEdge_INTERFACE_DEFINED__
#define __IGcadSubDMeshEdge_INTERFACE_DEFINED__

/* interface IGcadSubDMeshEdge */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadSubDMeshEdge;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("44C2831F-A7A5-4824-B378-B1C28BF70940")
    IGcadSubDMeshEdge : public IGcadSubEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CreaseType( 
            /* [retval][out] */ GcMeshCreaseType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CreaseType( 
            /* [in] */ GcMeshCreaseType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CreaseLevel( 
            /* [retval][out] */ double *level) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CreaseLevel( 
            /* [in] */ double level) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSubDMeshEdgeVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSubDMeshEdge * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSubDMeshEdge * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSubDMeshEdge * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSubDMeshEdge * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSubDMeshEdge * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSubDMeshEdge * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSubDMeshEdge * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, OnModified)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OnModified )( 
            IGcadSubDMeshEdge * This);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSubDMeshEdge * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Color)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSubDMeshEdge * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, put_Color)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSubDMeshEdge * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSubDMeshEdge * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSubDMeshEdge * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSubDMeshEdge * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSubDMeshEdge * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSubDMeshEdge * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSubDMeshEdge * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshEdge, get_CreaseType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CreaseType )( 
            IGcadSubDMeshEdge * This,
            /* [retval][out] */ GcMeshCreaseType *Type);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshEdge, put_CreaseType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CreaseType )( 
            IGcadSubDMeshEdge * This,
            /* [in] */ GcMeshCreaseType Type);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshEdge, get_CreaseLevel)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CreaseLevel )( 
            IGcadSubDMeshEdge * This,
            /* [retval][out] */ double *level);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshEdge, put_CreaseLevel)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CreaseLevel )( 
            IGcadSubDMeshEdge * This,
            /* [in] */ double level);
        
        END_INTERFACE
    } IGcadSubDMeshEdgeVtbl;

    interface IGcadSubDMeshEdge
    {
        CONST_VTBL struct IGcadSubDMeshEdgeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSubDMeshEdge_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSubDMeshEdge_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSubDMeshEdge_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSubDMeshEdge_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSubDMeshEdge_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSubDMeshEdge_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSubDMeshEdge_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSubDMeshEdge_OnModified(This)	\
    ( (This)->lpVtbl -> OnModified(This) ) 

#define IGcadSubDMeshEdge_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSubDMeshEdge_get_Color(This,pColor)	\
    ( (This)->lpVtbl -> get_Color(This,pColor) ) 

#define IGcadSubDMeshEdge_put_Color(This,pColor)	\
    ( (This)->lpVtbl -> put_Color(This,pColor) ) 

#define IGcadSubDMeshEdge_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSubDMeshEdge_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSubDMeshEdge_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSubDMeshEdge_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSubDMeshEdge_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSubDMeshEdge_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 


#define IGcadSubDMeshEdge_get_CreaseType(This,Type)	\
    ( (This)->lpVtbl -> get_CreaseType(This,Type) ) 

#define IGcadSubDMeshEdge_put_CreaseType(This,Type)	\
    ( (This)->lpVtbl -> put_CreaseType(This,Type) ) 

#define IGcadSubDMeshEdge_get_CreaseLevel(This,level)	\
    ( (This)->lpVtbl -> get_CreaseLevel(This,level) ) 

#define IGcadSubDMeshEdge_put_CreaseLevel(This,level)	\
    ( (This)->lpVtbl -> put_CreaseLevel(This,level) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSubDMeshEdge_INTERFACE_DEFINED__ */


#ifndef __IGcadSubDMeshVertex_INTERFACE_DEFINED__
#define __IGcadSubDMeshVertex_INTERFACE_DEFINED__

/* interface IGcadSubDMeshVertex */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadSubDMeshVertex;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("39E4B65C-7233-4B68-938A-C13EF1D7A61C")
    IGcadSubDMeshVertex : public IGcadSubEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Coordinates( 
            /* [retval][out] */ VARIANT *coord) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Coordinates( 
            /* [in] */ VARIANT coord) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CreaseType( 
            /* [retval][out] */ GcMeshCreaseType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CreaseType( 
            /* [in] */ GcMeshCreaseType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CreaseLevel( 
            /* [retval][out] */ double *level) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CreaseLevel( 
            /* [in] */ double level) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSubDMeshVertexVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSubDMeshVertex * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSubDMeshVertex * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSubDMeshVertex * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSubDMeshVertex * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSubDMeshVertex * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSubDMeshVertex * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSubDMeshVertex * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, OnModified)
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OnModified )( 
            IGcadSubDMeshVertex * This);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadSubDMeshVertex * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Color)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadSubDMeshVertex * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, put_Color)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadSubDMeshVertex * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadSubDMeshVertex * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadSubDMeshVertex * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadSubDMeshVertex * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadSubDMeshVertex * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadSubDMeshVertex * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadSubEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadSubDMeshVertex * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshVertex, get_Coordinates)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Coordinates )( 
            IGcadSubDMeshVertex * This,
            /* [retval][out] */ VARIANT *coord);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshVertex, put_Coordinates)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Coordinates )( 
            IGcadSubDMeshVertex * This,
            /* [in] */ VARIANT coord);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshVertex, get_CreaseType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CreaseType )( 
            IGcadSubDMeshVertex * This,
            /* [retval][out] */ GcMeshCreaseType *Type);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshVertex, put_CreaseType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CreaseType )( 
            IGcadSubDMeshVertex * This,
            /* [in] */ GcMeshCreaseType Type);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshVertex, get_CreaseLevel)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CreaseLevel )( 
            IGcadSubDMeshVertex * This,
            /* [retval][out] */ double *level);
        
        DECLSPEC_XFGVIRT(IGcadSubDMeshVertex, put_CreaseLevel)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CreaseLevel )( 
            IGcadSubDMeshVertex * This,
            /* [in] */ double level);
        
        END_INTERFACE
    } IGcadSubDMeshVertexVtbl;

    interface IGcadSubDMeshVertex
    {
        CONST_VTBL struct IGcadSubDMeshVertexVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSubDMeshVertex_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSubDMeshVertex_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSubDMeshVertex_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSubDMeshVertex_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSubDMeshVertex_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSubDMeshVertex_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSubDMeshVertex_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSubDMeshVertex_OnModified(This)	\
    ( (This)->lpVtbl -> OnModified(This) ) 

#define IGcadSubDMeshVertex_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadSubDMeshVertex_get_Color(This,pColor)	\
    ( (This)->lpVtbl -> get_Color(This,pColor) ) 

#define IGcadSubDMeshVertex_put_Color(This,pColor)	\
    ( (This)->lpVtbl -> put_Color(This,pColor) ) 

#define IGcadSubDMeshVertex_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadSubDMeshVertex_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadSubDMeshVertex_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadSubDMeshVertex_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadSubDMeshVertex_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadSubDMeshVertex_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 


#define IGcadSubDMeshVertex_get_Coordinates(This,coord)	\
    ( (This)->lpVtbl -> get_Coordinates(This,coord) ) 

#define IGcadSubDMeshVertex_put_Coordinates(This,coord)	\
    ( (This)->lpVtbl -> put_Coordinates(This,coord) ) 

#define IGcadSubDMeshVertex_get_CreaseType(This,Type)	\
    ( (This)->lpVtbl -> get_CreaseType(This,Type) ) 

#define IGcadSubDMeshVertex_put_CreaseType(This,Type)	\
    ( (This)->lpVtbl -> put_CreaseType(This,Type) ) 

#define IGcadSubDMeshVertex_get_CreaseLevel(This,level)	\
    ( (This)->lpVtbl -> get_CreaseLevel(This,level) ) 

#define IGcadSubDMeshVertex_put_CreaseLevel(This,level)	\
    ( (This)->lpVtbl -> put_CreaseLevel(This,level) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSubDMeshVertex_INTERFACE_DEFINED__ */


#ifndef __IGcadNurbSurface_INTERFACE_DEFINED__
#define __IGcadNurbSurface_INTERFACE_DEFINED__

/* interface IGcadNurbSurface */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadNurbSurface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B4087378-9A1B-4996-B1C0-D3EAD492FA7A")
    IGcadNurbSurface : public IGcadSurface
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CvHullDisplay( 
            /* [retval][out] */ VARIANT_BOOL *Display) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_CvHullDisplay( 
            /* [in] */ VARIANT_BOOL Display) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadNurbSurfaceVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadNurbSurface * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadNurbSurface * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadNurbSurface * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadNurbSurface * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadNurbSurface * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadNurbSurface * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadNurbSurface * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadNurbSurface * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadNurbSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadNurbSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadNurbSurface * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadNurbSurface * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadNurbSurface * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadNurbSurface * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadNurbSurface * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadNurbSurface * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadNurbSurface * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadNurbSurface * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadNurbSurface * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadNurbSurface * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadNurbSurface * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadNurbSurface * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadNurbSurface * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadNurbSurface * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfaceType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfaceType )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ BSTR *SurfaceType);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_UIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UIsolineDensity )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_UIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UIsolineDensity )( 
            IGcadNurbSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_VIsolineDensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VIsolineDensity )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ long *density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_VIsolineDensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_VIsolineDensity )( 
            IGcadNurbSurface * This,
            /* [in] */ long density);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_WireframeType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WireframeType )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ GcWireframeType *Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_WireframeType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WireframeType )( 
            IGcadNurbSurface * This,
            /* [in] */ GcWireframeType Type);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_MaintainAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaintainAssociativity )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ int *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_MaintainAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaintainAssociativity )( 
            IGcadNurbSurface * This,
            /* [in] */ int rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_ShowAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowAssociativity )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ VARIANT_BOOL *rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_ShowAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowAssociativity )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT_BOOL rhs);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_EdgeExtensionDistances)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EdgeExtensionDistances )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ VARIANT *extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_EdgeExtensionDistances)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EdgeExtensionDistances )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT extDistances);
        
        DECLSPEC_XFGVIRT(IGcadSurface, get_SurfTrimAssociativity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SurfTrimAssociativity )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ VARIANT *associative);
        
        DECLSPEC_XFGVIRT(IGcadSurface, put_SurfTrimAssociativity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SurfTrimAssociativity )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT associative);
        
        DECLSPEC_XFGVIRT(IGcadNurbSurface, get_CvHullDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CvHullDisplay )( 
            IGcadNurbSurface * This,
            /* [retval][out] */ VARIANT_BOOL *Display);
        
        DECLSPEC_XFGVIRT(IGcadNurbSurface, put_CvHullDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CvHullDisplay )( 
            IGcadNurbSurface * This,
            /* [in] */ VARIANT_BOOL Display);
        
        END_INTERFACE
    } IGcadNurbSurfaceVtbl;

    interface IGcadNurbSurface
    {
        CONST_VTBL struct IGcadNurbSurfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadNurbSurface_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadNurbSurface_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadNurbSurface_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadNurbSurface_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadNurbSurface_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadNurbSurface_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadNurbSurface_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadNurbSurface_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadNurbSurface_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadNurbSurface_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadNurbSurface_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadNurbSurface_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadNurbSurface_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadNurbSurface_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadNurbSurface_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadNurbSurface_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadNurbSurface_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadNurbSurface_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadNurbSurface_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadNurbSurface_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadNurbSurface_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadNurbSurface_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadNurbSurface_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadNurbSurface_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadNurbSurface_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadNurbSurface_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadNurbSurface_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadNurbSurface_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadNurbSurface_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadNurbSurface_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadNurbSurface_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadNurbSurface_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadNurbSurface_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadNurbSurface_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadNurbSurface_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadNurbSurface_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadNurbSurface_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadNurbSurface_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadNurbSurface_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadNurbSurface_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadNurbSurface_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadNurbSurface_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadNurbSurface_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadNurbSurface_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadNurbSurface_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadNurbSurface_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadNurbSurface_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadNurbSurface_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadNurbSurface_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadNurbSurface_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadNurbSurface_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadNurbSurface_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadNurbSurface_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadNurbSurface_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadNurbSurface_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadNurbSurface_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadNurbSurface_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadNurbSurface_get_SurfaceType(This,SurfaceType)	\
    ( (This)->lpVtbl -> get_SurfaceType(This,SurfaceType) ) 

#define IGcadNurbSurface_get_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_UIsolineDensity(This,density) ) 

#define IGcadNurbSurface_put_UIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_UIsolineDensity(This,density) ) 

#define IGcadNurbSurface_get_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> get_VIsolineDensity(This,density) ) 

#define IGcadNurbSurface_put_VIsolineDensity(This,density)	\
    ( (This)->lpVtbl -> put_VIsolineDensity(This,density) ) 

#define IGcadNurbSurface_get_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> get_WireframeType(This,Type) ) 

#define IGcadNurbSurface_put_WireframeType(This,Type)	\
    ( (This)->lpVtbl -> put_WireframeType(This,Type) ) 

#define IGcadNurbSurface_get_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_MaintainAssociativity(This,rhs) ) 

#define IGcadNurbSurface_put_MaintainAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_MaintainAssociativity(This,rhs) ) 

#define IGcadNurbSurface_get_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> get_ShowAssociativity(This,rhs) ) 

#define IGcadNurbSurface_put_ShowAssociativity(This,rhs)	\
    ( (This)->lpVtbl -> put_ShowAssociativity(This,rhs) ) 

#define IGcadNurbSurface_get_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> get_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadNurbSurface_put_EdgeExtensionDistances(This,extDistances)	\
    ( (This)->lpVtbl -> put_EdgeExtensionDistances(This,extDistances) ) 

#define IGcadNurbSurface_get_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> get_SurfTrimAssociativity(This,associative) ) 

#define IGcadNurbSurface_put_SurfTrimAssociativity(This,associative)	\
    ( (This)->lpVtbl -> put_SurfTrimAssociativity(This,associative) ) 


#define IGcadNurbSurface_get_CvHullDisplay(This,Display)	\
    ( (This)->lpVtbl -> get_CvHullDisplay(This,Display) ) 

#define IGcadNurbSurface_put_CvHullDisplay(This,Display)	\
    ( (This)->lpVtbl -> put_CvHullDisplay(This,Display) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadNurbSurface_INTERFACE_DEFINED__ */


#ifndef __IGcadGeoPositionMarker_INTERFACE_DEFINED__
#define __IGcadGeoPositionMarker_INTERFACE_DEFINED__

/* interface IGcadGeoPositionMarker */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadGeoPositionMarker;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0A5FCEA4-BDDC-4AA4-B85B-73E5D38D20BD")
    IGcadGeoPositionMarker : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Position( 
            /* [retval][out] */ VARIANT *Position) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Position( 
            /* [in] */ VARIANT Position) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextString( 
            /* [retval][out] */ BSTR *bstrText) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextString( 
            /* [in] */ BSTR bstrText) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextStyleName( 
            /* [retval][out] */ BSTR *bstrName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextStyleName( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextJustify( 
            /* [retval][out] */ GcAttachmentPoint *attPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextJustify( 
            /* [in] */ GcAttachmentPoint attPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_DrawingDirection( 
            /* [retval][out] */ GcDrawingDirection *drawDir) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_DrawingDirection( 
            /* [in] */ GcDrawingDirection drawDir) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextWidth( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextWidth( 
            /* [in] */ double Width) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ double *Height) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ double Height) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *rotAngle) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE rotAngle) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LineSpacingFactor( 
            /* [retval][out] */ double *factor) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LineSpacingFactor( 
            /* [in] */ double factor) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LineSpacingDistance( 
            /* [retval][out] */ double *Value) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LineSpacingDistance( 
            /* [in] */ double Value) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LineSpacingStyle( 
            /* [retval][out] */ GcLineSpacingStyle *style) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LineSpacingStyle( 
            /* [in] */ GcLineSpacingStyle style) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackgroundFill( 
            /* [retval][out] */ VARIANT_BOOL *bUseBackgroundFill) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackgroundFill( 
            /* [in] */ VARIANT_BOOL bUseBackgroundFill) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LandingGap( 
            /* [retval][out] */ double *gap) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_LandingGap( 
            /* [in] */ double gap) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Radius( 
            /* [retval][out] */ double *gap) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Radius( 
            /* [in] */ double gap) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TextFrameDisplay( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TextFrameDisplay( 
            /* [in] */ VARIANT_BOOL pVal) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Latitude( 
            /* [retval][out] */ BSTR *Latitude) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Latitude( 
            /* [in] */ BSTR Latitude) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Longitude( 
            /* [retval][out] */ BSTR *Longitude) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Longitude( 
            /* [in] */ BSTR Longitude) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Altitude( 
            /* [retval][out] */ double *Altitude) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Altitude( 
            /* [in] */ double Altitude) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Notes( 
            /* [retval][out] */ BSTR *Notes) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Notes( 
            /* [in] */ BSTR Notes) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadGeoPositionMarkerVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadGeoPositionMarker * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadGeoPositionMarker * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadGeoPositionMarker * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadGeoPositionMarker * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadGeoPositionMarker * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadGeoPositionMarker * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadGeoPositionMarker * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadGeoPositionMarker * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_Position)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Position )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ VARIANT *Position);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_Position)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Position )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT Position);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_TextString)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextString )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *bstrText);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_TextString)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextString )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ BSTR bstrText);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_TextStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyleName )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *bstrName);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_TextStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextStyleName )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ BSTR bstrName);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_TextJustify)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextJustify )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ GcAttachmentPoint *attPoint);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_TextJustify)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextJustify )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ GcAttachmentPoint attPoint);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_DrawingDirection)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DrawingDirection )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ GcDrawingDirection *drawDir);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_DrawingDirection)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DrawingDirection )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ GcDrawingDirection drawDir);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_TextWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextWidth )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_TextWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextWidth )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_LineSpacingFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LineSpacingFactor )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ double *factor);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_LineSpacingFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LineSpacingFactor )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ double factor);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_LineSpacingDistance)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LineSpacingDistance )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ double *Value);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_LineSpacingDistance)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LineSpacingDistance )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ double Value);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_LineSpacingStyle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LineSpacingStyle )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ GcLineSpacingStyle *style);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_LineSpacingStyle)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LineSpacingStyle )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ GcLineSpacingStyle style);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_BackgroundFill)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackgroundFill )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ VARIANT_BOOL *bUseBackgroundFill);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_BackgroundFill)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackgroundFill )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT_BOOL bUseBackgroundFill);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_LandingGap)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LandingGap )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ double *gap);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_LandingGap)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LandingGap )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ double gap);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_Radius)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Radius )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ double *gap);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_Radius)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Radius )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ double gap);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_TextFrameDisplay)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextFrameDisplay )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_TextFrameDisplay)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TextFrameDisplay )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ VARIANT_BOOL pVal);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_Latitude)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Latitude )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *Latitude);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_Latitude)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Latitude )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ BSTR Latitude);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_Longitude)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Longitude )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *Longitude);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_Longitude)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Longitude )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ BSTR Longitude);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_Altitude)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Altitude )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ double *Altitude);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_Altitude)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Altitude )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ double Altitude);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, get_Notes)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Notes )( 
            IGcadGeoPositionMarker * This,
            /* [retval][out] */ BSTR *Notes);
        
        DECLSPEC_XFGVIRT(IGcadGeoPositionMarker, put_Notes)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Notes )( 
            IGcadGeoPositionMarker * This,
            /* [in] */ BSTR Notes);
        
        END_INTERFACE
    } IGcadGeoPositionMarkerVtbl;

    interface IGcadGeoPositionMarker
    {
        CONST_VTBL struct IGcadGeoPositionMarkerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadGeoPositionMarker_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadGeoPositionMarker_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadGeoPositionMarker_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadGeoPositionMarker_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadGeoPositionMarker_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadGeoPositionMarker_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadGeoPositionMarker_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadGeoPositionMarker_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadGeoPositionMarker_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadGeoPositionMarker_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadGeoPositionMarker_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadGeoPositionMarker_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadGeoPositionMarker_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadGeoPositionMarker_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadGeoPositionMarker_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadGeoPositionMarker_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadGeoPositionMarker_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadGeoPositionMarker_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadGeoPositionMarker_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadGeoPositionMarker_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadGeoPositionMarker_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadGeoPositionMarker_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadGeoPositionMarker_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadGeoPositionMarker_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadGeoPositionMarker_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadGeoPositionMarker_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadGeoPositionMarker_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadGeoPositionMarker_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadGeoPositionMarker_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadGeoPositionMarker_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadGeoPositionMarker_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadGeoPositionMarker_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadGeoPositionMarker_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadGeoPositionMarker_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadGeoPositionMarker_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadGeoPositionMarker_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadGeoPositionMarker_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadGeoPositionMarker_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadGeoPositionMarker_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadGeoPositionMarker_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadGeoPositionMarker_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadGeoPositionMarker_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadGeoPositionMarker_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadGeoPositionMarker_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadGeoPositionMarker_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadGeoPositionMarker_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadGeoPositionMarker_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadGeoPositionMarker_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadGeoPositionMarker_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadGeoPositionMarker_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadGeoPositionMarker_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadGeoPositionMarker_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadGeoPositionMarker_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadGeoPositionMarker_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadGeoPositionMarker_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadGeoPositionMarker_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadGeoPositionMarker_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadGeoPositionMarker_get_Position(This,Position)	\
    ( (This)->lpVtbl -> get_Position(This,Position) ) 

#define IGcadGeoPositionMarker_put_Position(This,Position)	\
    ( (This)->lpVtbl -> put_Position(This,Position) ) 

#define IGcadGeoPositionMarker_get_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> get_TextString(This,bstrText) ) 

#define IGcadGeoPositionMarker_put_TextString(This,bstrText)	\
    ( (This)->lpVtbl -> put_TextString(This,bstrText) ) 

#define IGcadGeoPositionMarker_get_TextStyleName(This,bstrName)	\
    ( (This)->lpVtbl -> get_TextStyleName(This,bstrName) ) 

#define IGcadGeoPositionMarker_put_TextStyleName(This,bstrName)	\
    ( (This)->lpVtbl -> put_TextStyleName(This,bstrName) ) 

#define IGcadGeoPositionMarker_get_TextJustify(This,attPoint)	\
    ( (This)->lpVtbl -> get_TextJustify(This,attPoint) ) 

#define IGcadGeoPositionMarker_put_TextJustify(This,attPoint)	\
    ( (This)->lpVtbl -> put_TextJustify(This,attPoint) ) 

#define IGcadGeoPositionMarker_get_DrawingDirection(This,drawDir)	\
    ( (This)->lpVtbl -> get_DrawingDirection(This,drawDir) ) 

#define IGcadGeoPositionMarker_put_DrawingDirection(This,drawDir)	\
    ( (This)->lpVtbl -> put_DrawingDirection(This,drawDir) ) 

#define IGcadGeoPositionMarker_get_TextWidth(This,Width)	\
    ( (This)->lpVtbl -> get_TextWidth(This,Width) ) 

#define IGcadGeoPositionMarker_put_TextWidth(This,Width)	\
    ( (This)->lpVtbl -> put_TextWidth(This,Width) ) 

#define IGcadGeoPositionMarker_get_Height(This,Height)	\
    ( (This)->lpVtbl -> get_Height(This,Height) ) 

#define IGcadGeoPositionMarker_put_Height(This,Height)	\
    ( (This)->lpVtbl -> put_Height(This,Height) ) 

#define IGcadGeoPositionMarker_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadGeoPositionMarker_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadGeoPositionMarker_get_LineSpacingFactor(This,factor)	\
    ( (This)->lpVtbl -> get_LineSpacingFactor(This,factor) ) 

#define IGcadGeoPositionMarker_put_LineSpacingFactor(This,factor)	\
    ( (This)->lpVtbl -> put_LineSpacingFactor(This,factor) ) 

#define IGcadGeoPositionMarker_get_LineSpacingDistance(This,Value)	\
    ( (This)->lpVtbl -> get_LineSpacingDistance(This,Value) ) 

#define IGcadGeoPositionMarker_put_LineSpacingDistance(This,Value)	\
    ( (This)->lpVtbl -> put_LineSpacingDistance(This,Value) ) 

#define IGcadGeoPositionMarker_get_LineSpacingStyle(This,style)	\
    ( (This)->lpVtbl -> get_LineSpacingStyle(This,style) ) 

#define IGcadGeoPositionMarker_put_LineSpacingStyle(This,style)	\
    ( (This)->lpVtbl -> put_LineSpacingStyle(This,style) ) 

#define IGcadGeoPositionMarker_get_BackgroundFill(This,bUseBackgroundFill)	\
    ( (This)->lpVtbl -> get_BackgroundFill(This,bUseBackgroundFill) ) 

#define IGcadGeoPositionMarker_put_BackgroundFill(This,bUseBackgroundFill)	\
    ( (This)->lpVtbl -> put_BackgroundFill(This,bUseBackgroundFill) ) 

#define IGcadGeoPositionMarker_get_LandingGap(This,gap)	\
    ( (This)->lpVtbl -> get_LandingGap(This,gap) ) 

#define IGcadGeoPositionMarker_put_LandingGap(This,gap)	\
    ( (This)->lpVtbl -> put_LandingGap(This,gap) ) 

#define IGcadGeoPositionMarker_get_Radius(This,gap)	\
    ( (This)->lpVtbl -> get_Radius(This,gap) ) 

#define IGcadGeoPositionMarker_put_Radius(This,gap)	\
    ( (This)->lpVtbl -> put_Radius(This,gap) ) 

#define IGcadGeoPositionMarker_get_TextFrameDisplay(This,pVal)	\
    ( (This)->lpVtbl -> get_TextFrameDisplay(This,pVal) ) 

#define IGcadGeoPositionMarker_put_TextFrameDisplay(This,pVal)	\
    ( (This)->lpVtbl -> put_TextFrameDisplay(This,pVal) ) 

#define IGcadGeoPositionMarker_get_Latitude(This,Latitude)	\
    ( (This)->lpVtbl -> get_Latitude(This,Latitude) ) 

#define IGcadGeoPositionMarker_put_Latitude(This,Latitude)	\
    ( (This)->lpVtbl -> put_Latitude(This,Latitude) ) 

#define IGcadGeoPositionMarker_get_Longitude(This,Longitude)	\
    ( (This)->lpVtbl -> get_Longitude(This,Longitude) ) 

#define IGcadGeoPositionMarker_put_Longitude(This,Longitude)	\
    ( (This)->lpVtbl -> put_Longitude(This,Longitude) ) 

#define IGcadGeoPositionMarker_get_Altitude(This,Altitude)	\
    ( (This)->lpVtbl -> get_Altitude(This,Altitude) ) 

#define IGcadGeoPositionMarker_put_Altitude(This,Altitude)	\
    ( (This)->lpVtbl -> put_Altitude(This,Altitude) ) 

#define IGcadGeoPositionMarker_get_Notes(This,Notes)	\
    ( (This)->lpVtbl -> get_Notes(This,Notes) ) 

#define IGcadGeoPositionMarker_put_Notes(This,Notes)	\
    ( (This)->lpVtbl -> put_Notes(This,Notes) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadGeoPositionMarker_INTERFACE_DEFINED__ */


#ifndef __IGcadGeomapImage_INTERFACE_DEFINED__
#define __IGcadGeomapImage_INTERFACE_DEFINED__

/* interface IGcadGeomapImage */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadGeomapImage;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DF3A3D90-9AC6-40AF-9ACC-8CE4813F12F1")
    IGcadGeomapImage : public IGcadRasterImage
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GeoImageBrightness( 
            /* [retval][out] */ long *Brightness) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_GeoImageBrightness( 
            /* [in] */ long Brightness) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GeoImageContrast( 
            /* [retval][out] */ long *Contrast) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_GeoImageContrast( 
            /* [in] */ long Contrast) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GeoImageFade( 
            /* [retval][out] */ long *Fade) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_GeoImageFade( 
            /* [in] */ long Fade) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GeoImagePosition( 
            /* [retval][out] */ VARIANT *Position) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GeoImageWidth( 
            /* [retval][out] */ double *Width) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_GeoImageHeight( 
            /* [retval][out] */ double *Height) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadGeomapImageVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadGeomapImage * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadGeomapImage * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadGeomapImage * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadGeomapImage * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadGeomapImage * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadGeomapImage * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadGeomapImage * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadGeomapImage * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadGeomapImage * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadGeomapImage * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadGeomapImage * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadGeomapImage * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadGeomapImage * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadGeomapImage * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadGeomapImage * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadGeomapImage * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadGeomapImage * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadGeomapImage * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadGeomapImage * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadGeomapImage * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadGeomapImage * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadGeomapImage * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadGeomapImage * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadGeomapImage * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Brightness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Brightness )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ long *Brightness);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Brightness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Brightness )( 
            IGcadGeomapImage * This,
            /* [in] */ long Brightness);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Contrast)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Contrast )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ long *Contrast);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Contrast)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Contrast )( 
            IGcadGeomapImage * This,
            /* [in] */ long Contrast);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Fade)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Fade )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ long *Fade);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Fade)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Fade )( 
            IGcadGeomapImage * This,
            /* [in] */ long Fade);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Origin)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Origin )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ VARIANT *Origin);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Origin)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Origin )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT Origin);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ GCAD_ANGLE *rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadGeomapImage * This,
            /* [in] */ GCAD_ANGLE rotAngle);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageWidth )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageWidth)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageWidth )( 
            IGcadGeomapImage * This,
            /* [in] */ double Width);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageHeight )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ double *Height);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageHeight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageHeight )( 
            IGcadGeomapImage * This,
            /* [in] */ double Height);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ BSTR *Name);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadGeomapImage * This,
            /* [in] */ BSTR Name);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageFile)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageFile )( 
            IGcadGeomapImage * This,
            /* [in] */ BSTR imageFileName);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageFile)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageFile )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ BSTR *imageFileName);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ImageVisibility)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ImageVisibility )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ VARIANT_BOOL *fVisible);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ImageVisibility)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ImageVisibility )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT_BOOL fVisible);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ClippingEnabled)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ClippingEnabled )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ VARIANT_BOOL *kClip);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ClippingEnabled)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClippingEnabled )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT_BOOL kClip);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_transparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_transparency )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ VARIANT_BOOL *bTransp);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_transparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_transparency )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT_BOOL bTransp);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, ClipBoundary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClipBoundary )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT boundry);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ double *pixelHeight);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ double *pixelWidth);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ShowRotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowRotation )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ VARIANT_BOOL *bShow);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ShowRotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowRotation )( 
            IGcadGeomapImage * This,
            /* [in] */ VARIANT_BOOL bShow);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, get_ScaleFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleFactor )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ GCAD_NOUNITS *ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadRasterImage, put_ScaleFactor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleFactor )( 
            IGcadGeomapImage * This,
            /* [in] */ GCAD_NOUNITS ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadGeomapImage, get_GeoImageBrightness)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GeoImageBrightness )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ long *Brightness);
        
        DECLSPEC_XFGVIRT(IGcadGeomapImage, put_GeoImageBrightness)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GeoImageBrightness )( 
            IGcadGeomapImage * This,
            /* [in] */ long Brightness);
        
        DECLSPEC_XFGVIRT(IGcadGeomapImage, get_GeoImageContrast)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GeoImageContrast )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ long *Contrast);
        
        DECLSPEC_XFGVIRT(IGcadGeomapImage, put_GeoImageContrast)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GeoImageContrast )( 
            IGcadGeomapImage * This,
            /* [in] */ long Contrast);
        
        DECLSPEC_XFGVIRT(IGcadGeomapImage, get_GeoImageFade)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GeoImageFade )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ long *Fade);
        
        DECLSPEC_XFGVIRT(IGcadGeomapImage, put_GeoImageFade)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GeoImageFade )( 
            IGcadGeomapImage * This,
            /* [in] */ long Fade);
        
        DECLSPEC_XFGVIRT(IGcadGeomapImage, get_GeoImagePosition)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GeoImagePosition )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ VARIANT *Position);
        
        DECLSPEC_XFGVIRT(IGcadGeomapImage, get_GeoImageWidth)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GeoImageWidth )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ double *Width);
        
        DECLSPEC_XFGVIRT(IGcadGeomapImage, get_GeoImageHeight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GeoImageHeight )( 
            IGcadGeomapImage * This,
            /* [retval][out] */ double *Height);
        
        END_INTERFACE
    } IGcadGeomapImageVtbl;

    interface IGcadGeomapImage
    {
        CONST_VTBL struct IGcadGeomapImageVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadGeomapImage_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadGeomapImage_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadGeomapImage_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadGeomapImage_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadGeomapImage_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadGeomapImage_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadGeomapImage_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadGeomapImage_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadGeomapImage_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadGeomapImage_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadGeomapImage_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadGeomapImage_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadGeomapImage_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadGeomapImage_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadGeomapImage_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadGeomapImage_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadGeomapImage_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadGeomapImage_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadGeomapImage_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadGeomapImage_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadGeomapImage_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadGeomapImage_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadGeomapImage_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadGeomapImage_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadGeomapImage_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadGeomapImage_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadGeomapImage_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadGeomapImage_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadGeomapImage_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadGeomapImage_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadGeomapImage_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadGeomapImage_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadGeomapImage_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadGeomapImage_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadGeomapImage_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadGeomapImage_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadGeomapImage_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadGeomapImage_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadGeomapImage_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadGeomapImage_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadGeomapImage_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadGeomapImage_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadGeomapImage_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadGeomapImage_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadGeomapImage_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadGeomapImage_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadGeomapImage_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadGeomapImage_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadGeomapImage_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadGeomapImage_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadGeomapImage_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadGeomapImage_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadGeomapImage_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadGeomapImage_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadGeomapImage_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadGeomapImage_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadGeomapImage_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadGeomapImage_get_Brightness(This,Brightness)	\
    ( (This)->lpVtbl -> get_Brightness(This,Brightness) ) 

#define IGcadGeomapImage_put_Brightness(This,Brightness)	\
    ( (This)->lpVtbl -> put_Brightness(This,Brightness) ) 

#define IGcadGeomapImage_get_Contrast(This,Contrast)	\
    ( (This)->lpVtbl -> get_Contrast(This,Contrast) ) 

#define IGcadGeomapImage_put_Contrast(This,Contrast)	\
    ( (This)->lpVtbl -> put_Contrast(This,Contrast) ) 

#define IGcadGeomapImage_get_Fade(This,Fade)	\
    ( (This)->lpVtbl -> get_Fade(This,Fade) ) 

#define IGcadGeomapImage_put_Fade(This,Fade)	\
    ( (This)->lpVtbl -> put_Fade(This,Fade) ) 

#define IGcadGeomapImage_get_Origin(This,Origin)	\
    ( (This)->lpVtbl -> get_Origin(This,Origin) ) 

#define IGcadGeomapImage_put_Origin(This,Origin)	\
    ( (This)->lpVtbl -> put_Origin(This,Origin) ) 

#define IGcadGeomapImage_get_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> get_Rotation(This,rotAngle) ) 

#define IGcadGeomapImage_put_Rotation(This,rotAngle)	\
    ( (This)->lpVtbl -> put_Rotation(This,rotAngle) ) 

#define IGcadGeomapImage_get_ImageWidth(This,Width)	\
    ( (This)->lpVtbl -> get_ImageWidth(This,Width) ) 

#define IGcadGeomapImage_put_ImageWidth(This,Width)	\
    ( (This)->lpVtbl -> put_ImageWidth(This,Width) ) 

#define IGcadGeomapImage_get_ImageHeight(This,Height)	\
    ( (This)->lpVtbl -> get_ImageHeight(This,Height) ) 

#define IGcadGeomapImage_put_ImageHeight(This,Height)	\
    ( (This)->lpVtbl -> put_ImageHeight(This,Height) ) 

#define IGcadGeomapImage_get_Name(This,Name)	\
    ( (This)->lpVtbl -> get_Name(This,Name) ) 

#define IGcadGeomapImage_put_Name(This,Name)	\
    ( (This)->lpVtbl -> put_Name(This,Name) ) 

#define IGcadGeomapImage_put_ImageFile(This,imageFileName)	\
    ( (This)->lpVtbl -> put_ImageFile(This,imageFileName) ) 

#define IGcadGeomapImage_get_ImageFile(This,imageFileName)	\
    ( (This)->lpVtbl -> get_ImageFile(This,imageFileName) ) 

#define IGcadGeomapImage_get_ImageVisibility(This,fVisible)	\
    ( (This)->lpVtbl -> get_ImageVisibility(This,fVisible) ) 

#define IGcadGeomapImage_put_ImageVisibility(This,fVisible)	\
    ( (This)->lpVtbl -> put_ImageVisibility(This,fVisible) ) 

#define IGcadGeomapImage_get_ClippingEnabled(This,kClip)	\
    ( (This)->lpVtbl -> get_ClippingEnabled(This,kClip) ) 

#define IGcadGeomapImage_put_ClippingEnabled(This,kClip)	\
    ( (This)->lpVtbl -> put_ClippingEnabled(This,kClip) ) 

#define IGcadGeomapImage_get_transparency(This,bTransp)	\
    ( (This)->lpVtbl -> get_transparency(This,bTransp) ) 

#define IGcadGeomapImage_put_transparency(This,bTransp)	\
    ( (This)->lpVtbl -> put_transparency(This,bTransp) ) 

#define IGcadGeomapImage_ClipBoundary(This,boundry)	\
    ( (This)->lpVtbl -> ClipBoundary(This,boundry) ) 

#define IGcadGeomapImage_get_Height(This,pixelHeight)	\
    ( (This)->lpVtbl -> get_Height(This,pixelHeight) ) 

#define IGcadGeomapImage_get_Width(This,pixelWidth)	\
    ( (This)->lpVtbl -> get_Width(This,pixelWidth) ) 

#define IGcadGeomapImage_get_ShowRotation(This,bShow)	\
    ( (This)->lpVtbl -> get_ShowRotation(This,bShow) ) 

#define IGcadGeomapImage_put_ShowRotation(This,bShow)	\
    ( (This)->lpVtbl -> put_ShowRotation(This,bShow) ) 

#define IGcadGeomapImage_get_ScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> get_ScaleFactor(This,ScaleFactor) ) 

#define IGcadGeomapImage_put_ScaleFactor(This,ScaleFactor)	\
    ( (This)->lpVtbl -> put_ScaleFactor(This,ScaleFactor) ) 


#define IGcadGeomapImage_get_GeoImageBrightness(This,Brightness)	\
    ( (This)->lpVtbl -> get_GeoImageBrightness(This,Brightness) ) 

#define IGcadGeomapImage_put_GeoImageBrightness(This,Brightness)	\
    ( (This)->lpVtbl -> put_GeoImageBrightness(This,Brightness) ) 

#define IGcadGeomapImage_get_GeoImageContrast(This,Contrast)	\
    ( (This)->lpVtbl -> get_GeoImageContrast(This,Contrast) ) 

#define IGcadGeomapImage_put_GeoImageContrast(This,Contrast)	\
    ( (This)->lpVtbl -> put_GeoImageContrast(This,Contrast) ) 

#define IGcadGeomapImage_get_GeoImageFade(This,Fade)	\
    ( (This)->lpVtbl -> get_GeoImageFade(This,Fade) ) 

#define IGcadGeomapImage_put_GeoImageFade(This,Fade)	\
    ( (This)->lpVtbl -> put_GeoImageFade(This,Fade) ) 

#define IGcadGeomapImage_get_GeoImagePosition(This,Position)	\
    ( (This)->lpVtbl -> get_GeoImagePosition(This,Position) ) 

#define IGcadGeomapImage_get_GeoImageWidth(This,Width)	\
    ( (This)->lpVtbl -> get_GeoImageWidth(This,Width) ) 

#define IGcadGeomapImage_get_GeoImageHeight(This,Height)	\
    ( (This)->lpVtbl -> get_GeoImageHeight(This,Height) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadGeomapImage_INTERFACE_DEFINED__ */


#ifndef __IGcadPointCloud_INTERFACE_DEFINED__
#define __IGcadPointCloud_INTERFACE_DEFINED__

/* interface IGcadPointCloud */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadPointCloud;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B3C58262-8B1B-4C66-80BA-ADD68DAC1AC8")
    IGcadPointCloud : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UseEntityColor( 
            /* [retval][out] */ GcPointCloudColorType *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UseEntityColor( 
            /* [in] */ GcPointCloudColorType val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ShowIntensity( 
            /* [retval][out] */ VARIANT_BOOL *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ShowIntensity( 
            /* [in] */ VARIANT_BOOL val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_IntensityColorScheme( 
            /* [retval][out] */ GcPointCloudIntensityStyle *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_IntensityColorScheme( 
            /* [in] */ GcPointCloudIntensityStyle val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsertionPoint( 
            /* [retval][out] */ VARIANT *EndPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_InsertionPoint( 
            /* [in] */ VARIANT EndPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ GCAD_DISTANCE *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Width( 
            /* [in] */ GCAD_DISTANCE val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Length( 
            /* [retval][out] */ GCAD_DISTANCE *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Length( 
            /* [in] */ GCAD_DISTANCE val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ GCAD_DISTANCE *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
            /* [in] */ GCAD_DISTANCE val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_scale( 
            /* [retval][out] */ GCAD_NOUNITS *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_scale( 
            /* [in] */ GCAD_NOUNITS val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Path( 
            /* [retval][out] */ BSTR *val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ShowClipped( 
            /* [retval][out] */ VARIANT_BOOL *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ShowClipped( 
            /* [in] */ VARIANT_BOOL val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Locked( 
            /* [retval][out] */ VARIANT_BOOL *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Locked( 
            /* [in] */ VARIANT_BOOL val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Stylization( 
            /* [retval][out] */ GcPointCloudStylizationType *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Stylization( 
            /* [in] */ GcPointCloudStylizationType val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Unit( 
            /* [retval][out] */ BSTR *val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnitFactor( 
            /* [retval][out] */ GCAD_NOUNITS *val) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPointCloudVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPointCloud * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPointCloud * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPointCloud * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPointCloud * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPointCloud * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPointCloud * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPointCloud * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPointCloud * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPointCloud * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPointCloud * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPointCloud * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPointCloud * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPointCloud * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPointCloud * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPointCloud * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPointCloud * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPointCloud * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPointCloud * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPointCloud * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadPointCloud * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadPointCloud * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadPointCloud * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadPointCloud * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadPointCloud * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadPointCloud * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadPointCloud * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadPointCloud * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadPointCloud * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadPointCloud * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadPointCloud * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadPointCloud * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadPointCloud * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadPointCloud * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadPointCloud * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadPointCloud * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadPointCloud * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadPointCloud * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadPointCloud * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadPointCloud * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadPointCloud * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadPointCloud * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadPointCloud * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadPointCloud * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadPointCloud * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_UseEntityColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UseEntityColor )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GcPointCloudColorType *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_UseEntityColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UseEntityColor )( 
            IGcadPointCloud * This,
            /* [in] */ GcPointCloudColorType val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_ShowIntensity)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowIntensity )( 
            IGcadPointCloud * This,
            /* [retval][out] */ VARIANT_BOOL *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_ShowIntensity)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowIntensity )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT_BOOL val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_IntensityColorScheme)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IntensityColorScheme )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GcPointCloudIntensityStyle *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_IntensityColorScheme)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IntensityColorScheme )( 
            IGcadPointCloud * This,
            /* [in] */ GcPointCloudIntensityStyle val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadPointCloud * This,
            /* [retval][out] */ VARIANT *EndPoint);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT EndPoint);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GCAD_ANGLE *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadPointCloud * This,
            /* [in] */ GCAD_ANGLE val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_Width)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GCAD_DISTANCE *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_Width)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( 
            IGcadPointCloud * This,
            /* [in] */ GCAD_DISTANCE val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_Length)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GCAD_DISTANCE *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_Length)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Length )( 
            IGcadPointCloud * This,
            /* [in] */ GCAD_DISTANCE val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_Height)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GCAD_DISTANCE *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_Height)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( 
            IGcadPointCloud * This,
            /* [in] */ GCAD_DISTANCE val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_scale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_scale )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GCAD_NOUNITS *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_scale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_scale )( 
            IGcadPointCloud * This,
            /* [in] */ GCAD_NOUNITS val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadPointCloud * This,
            /* [retval][out] */ BSTR *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_Path)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            IGcadPointCloud * This,
            /* [retval][out] */ BSTR *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_ShowClipped)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowClipped )( 
            IGcadPointCloud * This,
            /* [retval][out] */ VARIANT_BOOL *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_ShowClipped)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowClipped )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT_BOOL val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_Locked)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Locked )( 
            IGcadPointCloud * This,
            /* [retval][out] */ VARIANT_BOOL *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_Locked)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Locked )( 
            IGcadPointCloud * This,
            /* [in] */ VARIANT_BOOL val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_Stylization)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Stylization )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GcPointCloudStylizationType *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, put_Stylization)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Stylization )( 
            IGcadPointCloud * This,
            /* [in] */ GcPointCloudStylizationType val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_Unit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Unit )( 
            IGcadPointCloud * This,
            /* [retval][out] */ BSTR *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloud, get_UnitFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnitFactor )( 
            IGcadPointCloud * This,
            /* [retval][out] */ GCAD_NOUNITS *val);
        
        END_INTERFACE
    } IGcadPointCloudVtbl;

    interface IGcadPointCloud
    {
        CONST_VTBL struct IGcadPointCloudVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPointCloud_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPointCloud_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPointCloud_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPointCloud_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPointCloud_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPointCloud_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPointCloud_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPointCloud_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPointCloud_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPointCloud_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPointCloud_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPointCloud_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPointCloud_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPointCloud_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPointCloud_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPointCloud_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPointCloud_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPointCloud_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPointCloud_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPointCloud_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPointCloud_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadPointCloud_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadPointCloud_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadPointCloud_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadPointCloud_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadPointCloud_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadPointCloud_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadPointCloud_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadPointCloud_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadPointCloud_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadPointCloud_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadPointCloud_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadPointCloud_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadPointCloud_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadPointCloud_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadPointCloud_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadPointCloud_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadPointCloud_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadPointCloud_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadPointCloud_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadPointCloud_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadPointCloud_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadPointCloud_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadPointCloud_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadPointCloud_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadPointCloud_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadPointCloud_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadPointCloud_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadPointCloud_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadPointCloud_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadPointCloud_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadPointCloud_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadPointCloud_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadPointCloud_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadPointCloud_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadPointCloud_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadPointCloud_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadPointCloud_get_UseEntityColor(This,val)	\
    ( (This)->lpVtbl -> get_UseEntityColor(This,val) ) 

#define IGcadPointCloud_put_UseEntityColor(This,val)	\
    ( (This)->lpVtbl -> put_UseEntityColor(This,val) ) 

#define IGcadPointCloud_get_ShowIntensity(This,val)	\
    ( (This)->lpVtbl -> get_ShowIntensity(This,val) ) 

#define IGcadPointCloud_put_ShowIntensity(This,val)	\
    ( (This)->lpVtbl -> put_ShowIntensity(This,val) ) 

#define IGcadPointCloud_get_IntensityColorScheme(This,val)	\
    ( (This)->lpVtbl -> get_IntensityColorScheme(This,val) ) 

#define IGcadPointCloud_put_IntensityColorScheme(This,val)	\
    ( (This)->lpVtbl -> put_IntensityColorScheme(This,val) ) 

#define IGcadPointCloud_get_InsertionPoint(This,EndPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,EndPoint) ) 

#define IGcadPointCloud_put_InsertionPoint(This,EndPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,EndPoint) ) 

#define IGcadPointCloud_get_Rotation(This,val)	\
    ( (This)->lpVtbl -> get_Rotation(This,val) ) 

#define IGcadPointCloud_put_Rotation(This,val)	\
    ( (This)->lpVtbl -> put_Rotation(This,val) ) 

#define IGcadPointCloud_get_Width(This,val)	\
    ( (This)->lpVtbl -> get_Width(This,val) ) 

#define IGcadPointCloud_put_Width(This,val)	\
    ( (This)->lpVtbl -> put_Width(This,val) ) 

#define IGcadPointCloud_get_Length(This,val)	\
    ( (This)->lpVtbl -> get_Length(This,val) ) 

#define IGcadPointCloud_put_Length(This,val)	\
    ( (This)->lpVtbl -> put_Length(This,val) ) 

#define IGcadPointCloud_get_Height(This,val)	\
    ( (This)->lpVtbl -> get_Height(This,val) ) 

#define IGcadPointCloud_put_Height(This,val)	\
    ( (This)->lpVtbl -> put_Height(This,val) ) 

#define IGcadPointCloud_get_scale(This,val)	\
    ( (This)->lpVtbl -> get_scale(This,val) ) 

#define IGcadPointCloud_put_scale(This,val)	\
    ( (This)->lpVtbl -> put_scale(This,val) ) 

#define IGcadPointCloud_get_Name(This,val)	\
    ( (This)->lpVtbl -> get_Name(This,val) ) 

#define IGcadPointCloud_get_Path(This,val)	\
    ( (This)->lpVtbl -> get_Path(This,val) ) 

#define IGcadPointCloud_get_ShowClipped(This,val)	\
    ( (This)->lpVtbl -> get_ShowClipped(This,val) ) 

#define IGcadPointCloud_put_ShowClipped(This,val)	\
    ( (This)->lpVtbl -> put_ShowClipped(This,val) ) 

#define IGcadPointCloud_get_Locked(This,val)	\
    ( (This)->lpVtbl -> get_Locked(This,val) ) 

#define IGcadPointCloud_put_Locked(This,val)	\
    ( (This)->lpVtbl -> put_Locked(This,val) ) 

#define IGcadPointCloud_get_Stylization(This,val)	\
    ( (This)->lpVtbl -> get_Stylization(This,val) ) 

#define IGcadPointCloud_put_Stylization(This,val)	\
    ( (This)->lpVtbl -> put_Stylization(This,val) ) 

#define IGcadPointCloud_get_Unit(This,val)	\
    ( (This)->lpVtbl -> get_Unit(This,val) ) 

#define IGcadPointCloud_get_UnitFactor(This,val)	\
    ( (This)->lpVtbl -> get_UnitFactor(This,val) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPointCloud_INTERFACE_DEFINED__ */


#ifndef __IGcadPointCloudEx_INTERFACE_DEFINED__
#define __IGcadPointCloudEx_INTERFACE_DEFINED__

/* interface IGcadPointCloudEx */
/* [unique][oleautomation][dual][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IGcadPointCloudEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("43DC153E-7BF6-43A8-96AC-C6788C702C9D")
    IGcadPointCloudEx : public IGcadEntity
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Stylization( 
            /* [retval][out] */ GcPointCloudExStylizationType *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Stylization( 
            /* [in] */ GcPointCloudExStylizationType Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ColorScheme( 
            /* [retval][out] */ BSTR *Type) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ColorScheme( 
            /* [in] */ BSTR Type) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_InsertionPoint( 
            /* [retval][out] */ VARIANT *EndPoint) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_InsertionPoint( 
            /* [in] */ VARIANT EndPoint) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ GCAD_ANGLE *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ GCAD_ANGLE val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Scale( 
            /* [retval][out] */ GCAD_NOUNITS *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Scale( 
            /* [in] */ GCAD_NOUNITS val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Path( 
            /* [retval][out] */ BSTR *val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ShowCropped( 
            /* [retval][out] */ VARIANT_BOOL *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ShowCropped( 
            /* [in] */ VARIANT_BOOL val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Locked( 
            /* [retval][out] */ VARIANT_BOOL *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Locked( 
            /* [in] */ VARIANT_BOOL val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Geolocate( 
            /* [retval][out] */ VARIANT_BOOL *val) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Geolocate( 
            /* [in] */ VARIANT_BOOL val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Unit( 
            /* [retval][out] */ BSTR *val) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UnitFactor( 
            /* [retval][out] */ double *val) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPointCloudExVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPointCloudEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPointCloudEx * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPointCloudEx * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPointCloudEx * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPointCloudEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPointCloudEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPointCloudEx * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPointCloudEx * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPointCloudEx * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPointCloudEx * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadPointCloudEx * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadPointCloudEx * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadPointCloudEx * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadPointCloudEx * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadPointCloudEx * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadPointCloudEx * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadPointCloudEx * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadPointCloudEx * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadPointCloudEx * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadPointCloudEx * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadPointCloudEx * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadPointCloudEx * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadPointCloudEx * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadPointCloudEx * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Stylization)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Stylization )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ GcPointCloudExStylizationType *Type);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Stylization)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Stylization )( 
            IGcadPointCloudEx * This,
            /* [in] */ GcPointCloudExStylizationType Type);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_ColorScheme)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorScheme )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *Type);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_ColorScheme)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorScheme )( 
            IGcadPointCloudEx * This,
            /* [in] */ BSTR Type);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ VARIANT *EndPoint);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT EndPoint);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ GCAD_ANGLE *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadPointCloudEx * This,
            /* [in] */ GCAD_ANGLE val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Scale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Scale )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ GCAD_NOUNITS *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Scale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Scale )( 
            IGcadPointCloudEx * This,
            /* [in] */ GCAD_NOUNITS val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadPointCloudEx * This,
            /* [in] */ BSTR val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Path)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_ShowCropped)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowCropped )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ VARIANT_BOOL *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_ShowCropped)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowCropped )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT_BOOL val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Locked)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Locked )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ VARIANT_BOOL *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Locked)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Locked )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT_BOOL val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Geolocate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Geolocate )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ VARIANT_BOOL *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Geolocate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Geolocate )( 
            IGcadPointCloudEx * This,
            /* [in] */ VARIANT_BOOL val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Unit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Unit )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ BSTR *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_UnitFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnitFactor )( 
            IGcadPointCloudEx * This,
            /* [retval][out] */ double *val);
        
        END_INTERFACE
    } IGcadPointCloudExVtbl;

    interface IGcadPointCloudEx
    {
        CONST_VTBL struct IGcadPointCloudExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPointCloudEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPointCloudEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPointCloudEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPointCloudEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPointCloudEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPointCloudEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPointCloudEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPointCloudEx_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPointCloudEx_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPointCloudEx_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPointCloudEx_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPointCloudEx_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPointCloudEx_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPointCloudEx_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPointCloudEx_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPointCloudEx_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPointCloudEx_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPointCloudEx_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPointCloudEx_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPointCloudEx_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPointCloudEx_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadPointCloudEx_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadPointCloudEx_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadPointCloudEx_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadPointCloudEx_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadPointCloudEx_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadPointCloudEx_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadPointCloudEx_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadPointCloudEx_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadPointCloudEx_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadPointCloudEx_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadPointCloudEx_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadPointCloudEx_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadPointCloudEx_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadPointCloudEx_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadPointCloudEx_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadPointCloudEx_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadPointCloudEx_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadPointCloudEx_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadPointCloudEx_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadPointCloudEx_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadPointCloudEx_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadPointCloudEx_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadPointCloudEx_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadPointCloudEx_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadPointCloudEx_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadPointCloudEx_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadPointCloudEx_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadPointCloudEx_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadPointCloudEx_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadPointCloudEx_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadPointCloudEx_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadPointCloudEx_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadPointCloudEx_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadPointCloudEx_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadPointCloudEx_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadPointCloudEx_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadPointCloudEx_get_Stylization(This,Type)	\
    ( (This)->lpVtbl -> get_Stylization(This,Type) ) 

#define IGcadPointCloudEx_put_Stylization(This,Type)	\
    ( (This)->lpVtbl -> put_Stylization(This,Type) ) 

#define IGcadPointCloudEx_get_ColorScheme(This,Type)	\
    ( (This)->lpVtbl -> get_ColorScheme(This,Type) ) 

#define IGcadPointCloudEx_put_ColorScheme(This,Type)	\
    ( (This)->lpVtbl -> put_ColorScheme(This,Type) ) 

#define IGcadPointCloudEx_get_InsertionPoint(This,EndPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,EndPoint) ) 

#define IGcadPointCloudEx_put_InsertionPoint(This,EndPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,EndPoint) ) 

#define IGcadPointCloudEx_get_Rotation(This,val)	\
    ( (This)->lpVtbl -> get_Rotation(This,val) ) 

#define IGcadPointCloudEx_put_Rotation(This,val)	\
    ( (This)->lpVtbl -> put_Rotation(This,val) ) 

#define IGcadPointCloudEx_get_Scale(This,val)	\
    ( (This)->lpVtbl -> get_Scale(This,val) ) 

#define IGcadPointCloudEx_put_Scale(This,val)	\
    ( (This)->lpVtbl -> put_Scale(This,val) ) 

#define IGcadPointCloudEx_get_Name(This,val)	\
    ( (This)->lpVtbl -> get_Name(This,val) ) 

#define IGcadPointCloudEx_put_Name(This,val)	\
    ( (This)->lpVtbl -> put_Name(This,val) ) 

#define IGcadPointCloudEx_get_Path(This,val)	\
    ( (This)->lpVtbl -> get_Path(This,val) ) 

#define IGcadPointCloudEx_get_ShowCropped(This,val)	\
    ( (This)->lpVtbl -> get_ShowCropped(This,val) ) 

#define IGcadPointCloudEx_put_ShowCropped(This,val)	\
    ( (This)->lpVtbl -> put_ShowCropped(This,val) ) 

#define IGcadPointCloudEx_get_Locked(This,val)	\
    ( (This)->lpVtbl -> get_Locked(This,val) ) 

#define IGcadPointCloudEx_put_Locked(This,val)	\
    ( (This)->lpVtbl -> put_Locked(This,val) ) 

#define IGcadPointCloudEx_get_Geolocate(This,val)	\
    ( (This)->lpVtbl -> get_Geolocate(This,val) ) 

#define IGcadPointCloudEx_put_Geolocate(This,val)	\
    ( (This)->lpVtbl -> put_Geolocate(This,val) ) 

#define IGcadPointCloudEx_get_Unit(This,val)	\
    ( (This)->lpVtbl -> get_Unit(This,val) ) 

#define IGcadPointCloudEx_get_UnitFactor(This,val)	\
    ( (This)->lpVtbl -> get_UnitFactor(This,val) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPointCloudEx_INTERFACE_DEFINED__ */


#ifndef __IGcadPointCloudEx2_INTERFACE_DEFINED__
#define __IGcadPointCloudEx2_INTERFACE_DEFINED__

/* interface IGcadPointCloudEx2 */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadPointCloudEx2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6BB22C1F-2FDA-45F6-A600-03601310DCDD")
    IGcadPointCloudEx2 : public IGcadPointCloudEx
    {
    public:
        virtual /* [helpcontext][propget][id] */ HRESULT STDMETHODCALLTYPE get_Segmentation( 
            /* [retval][out] */ BSTR *val) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadPointCloudEx2Vtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadPointCloudEx2 * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadPointCloudEx2 * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadPointCloudEx2 * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadPointCloudEx2 * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Handle)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Handle )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *Handle);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectName )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *ObjectName);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetXData )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ BSTR AppName,
            /* [out] */ VARIANT *XDataType,
            /* [out] */ VARIANT *XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, SetXData)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetXData )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT XDataType,
            /* [in] */ VARIANT XDataValue);
        
        DECLSPEC_XFGVIRT(IGcadObject, Delete)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadPointCloudEx2 * This);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_ObjectID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ObjectID )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ LONG_PTR *ObjectID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ IDispatch **ApplicationObject);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Database)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_HasExtensionDictionary)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasExtensionDictionary )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ VARIANT_BOOL *bHasDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, GetExtensionDictionary)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExtensionDictionary )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ IGcadDictionary **pExtDictionary);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_OwnerID)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_OwnerID )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ LONG_PTR *OwnerID);
        
        DECLSPEC_XFGVIRT(IGcadObject, get_Document)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ IDispatch **pDocument);
        
        DECLSPEC_XFGVIRT(IGcadObject, Erase)
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( 
            IGcadPointCloudEx2 * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_TrueColor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TrueColor )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ IGcadGcCmColor **pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_TrueColor)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TrueColor )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ IGcadGcCmColor *pColor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Layer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Layer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Layer )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ BSTR Layer);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Linetype)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetype )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Linetype)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Linetype )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ BSTR Linetype);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_LinetypeScale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LinetypeScale )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ GCAD_NOUNITS *ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_LinetypeScale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LinetypeScale )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ GCAD_NOUNITS ltScale);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Visible)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ VARIANT_BOOL *bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Visible)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT_BOOL bVisible);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayPolar)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayPolar )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ int NumberOfObjects,
            /* [in] */ double AngleToFill,
            /* [in] */ VARIANT CenterPoint,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ArrayRectangular)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ArrayRectangular )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ int NumberOfRows,
            /* [in] */ int NumberOfColumns,
            /* [in] */ int NumberOfLevels,
            /* [in] */ double DistBetweenRows,
            /* [in] */ double DistBetweenCols,
            /* [in] */ double DistBetweenLevels,
            /* [retval][out] */ VARIANT *pArrayObjs);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Highlight)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Highlight )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT_BOOL HighlightFlag);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Copy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ IDispatch **pCopyObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Move)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT FromPoint,
            /* [in] */ VARIANT ToPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Rotate3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate3D )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ double RotationAngle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Mirror3D)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mirror3D )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT Point1,
            /* [in] */ VARIANT Point2,
            /* [in] */ VARIANT point3,
            /* [retval][out] */ IDispatch **pMirrorObj);
        
        DECLSPEC_XFGVIRT(IGcadEntity, ScaleEntity)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleEntity )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT BasePoint,
            /* [in] */ double ScaleFactor);
        
        DECLSPEC_XFGVIRT(IGcadEntity, TransformBy)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformBy )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT TransformationMatrix);
        
        DECLSPEC_XFGVIRT(IGcadEntity, Update)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IGcadPointCloudEx2 * This);
        
        DECLSPEC_XFGVIRT(IGcadEntity, GetBoundingBox)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IGcadPointCloudEx2 * This,
            /* [out] */ VARIANT *MinPoint,
            /* [out] */ VARIANT *MaxPoint);
        
        DECLSPEC_XFGVIRT(IGcadEntity, IntersectWith)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IntersectWith )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ IDispatch *IntersectObject,
            /* [in] */ GcExtendOption option,
            /* [retval][out] */ VARIANT *intPoints);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_PlotStyleName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotStyleName )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_PlotStyleName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PlotStyleName )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ BSTR plotStyle);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Lineweight)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Lineweight )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ GCAD_LWEIGHT *Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Lineweight)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Lineweight )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ GCAD_LWEIGHT Lineweight);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityTransparency)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityTransparency )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_EntityTransparency)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EntityTransparency )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ BSTR transparency);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Hyperlinks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Hyperlinks )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ IGcadHyperlinks **Hyperlinks);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Material)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Material)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Material )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ BSTR Material);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityName)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityName )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *EntityName);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_EntityType)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EntityType )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ long *entType);
        
        DECLSPEC_XFGVIRT(IGcadEntity, get_Color)
        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ GCAD_COLOR *color);
        
        DECLSPEC_XFGVIRT(IGcadEntity, put_Color)
        /* [helpstring][hidden][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ GCAD_COLOR color);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Stylization)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Stylization )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ GcPointCloudExStylizationType *Type);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Stylization)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Stylization )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ GcPointCloudExStylizationType Type);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_ColorScheme)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorScheme )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *Type);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_ColorScheme)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorScheme )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ BSTR Type);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_InsertionPoint)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InsertionPoint )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ VARIANT *EndPoint);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_InsertionPoint)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InsertionPoint )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT EndPoint);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Rotation)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ GCAD_ANGLE *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Rotation)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ GCAD_ANGLE val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Scale)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Scale )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ GCAD_NOUNITS *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Scale)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Scale )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ GCAD_NOUNITS val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ BSTR val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Path)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_ShowCropped)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowCropped )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ VARIANT_BOOL *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_ShowCropped)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowCropped )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT_BOOL val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Locked)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Locked )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ VARIANT_BOOL *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Locked)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Locked )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT_BOOL val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Geolocate)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Geolocate )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ VARIANT_BOOL *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, put_Geolocate)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Geolocate )( 
            IGcadPointCloudEx2 * This,
            /* [in] */ VARIANT_BOOL val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_Unit)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Unit )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx, get_UnitFactor)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UnitFactor )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ double *val);
        
        DECLSPEC_XFGVIRT(IGcadPointCloudEx2, get_Segmentation)
        /* [helpcontext][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Segmentation )( 
            IGcadPointCloudEx2 * This,
            /* [retval][out] */ BSTR *val);
        
        END_INTERFACE
    } IGcadPointCloudEx2Vtbl;

    interface IGcadPointCloudEx2
    {
        CONST_VTBL struct IGcadPointCloudEx2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadPointCloudEx2_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadPointCloudEx2_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadPointCloudEx2_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadPointCloudEx2_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadPointCloudEx2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadPointCloudEx2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadPointCloudEx2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadPointCloudEx2_get_Handle(This,Handle)	\
    ( (This)->lpVtbl -> get_Handle(This,Handle) ) 

#define IGcadPointCloudEx2_get_ObjectName(This,ObjectName)	\
    ( (This)->lpVtbl -> get_ObjectName(This,ObjectName) ) 

#define IGcadPointCloudEx2_GetXData(This,AppName,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> GetXData(This,AppName,XDataType,XDataValue) ) 

#define IGcadPointCloudEx2_SetXData(This,XDataType,XDataValue)	\
    ( (This)->lpVtbl -> SetXData(This,XDataType,XDataValue) ) 

#define IGcadPointCloudEx2_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define IGcadPointCloudEx2_get_ObjectID(This,ObjectID)	\
    ( (This)->lpVtbl -> get_ObjectID(This,ObjectID) ) 

#define IGcadPointCloudEx2_get_Application(This,ApplicationObject)	\
    ( (This)->lpVtbl -> get_Application(This,ApplicationObject) ) 

#define IGcadPointCloudEx2_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#define IGcadPointCloudEx2_get_HasExtensionDictionary(This,bHasDictionary)	\
    ( (This)->lpVtbl -> get_HasExtensionDictionary(This,bHasDictionary) ) 

#define IGcadPointCloudEx2_GetExtensionDictionary(This,pExtDictionary)	\
    ( (This)->lpVtbl -> GetExtensionDictionary(This,pExtDictionary) ) 

#define IGcadPointCloudEx2_get_OwnerID(This,OwnerID)	\
    ( (This)->lpVtbl -> get_OwnerID(This,OwnerID) ) 

#define IGcadPointCloudEx2_get_Document(This,pDocument)	\
    ( (This)->lpVtbl -> get_Document(This,pDocument) ) 

#define IGcadPointCloudEx2_Erase(This)	\
    ( (This)->lpVtbl -> Erase(This) ) 


#define IGcadPointCloudEx2_get_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> get_TrueColor(This,pColor) ) 

#define IGcadPointCloudEx2_put_TrueColor(This,pColor)	\
    ( (This)->lpVtbl -> put_TrueColor(This,pColor) ) 

#define IGcadPointCloudEx2_get_Layer(This,Layer)	\
    ( (This)->lpVtbl -> get_Layer(This,Layer) ) 

#define IGcadPointCloudEx2_put_Layer(This,Layer)	\
    ( (This)->lpVtbl -> put_Layer(This,Layer) ) 

#define IGcadPointCloudEx2_get_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> get_Linetype(This,Linetype) ) 

#define IGcadPointCloudEx2_put_Linetype(This,Linetype)	\
    ( (This)->lpVtbl -> put_Linetype(This,Linetype) ) 

#define IGcadPointCloudEx2_get_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> get_LinetypeScale(This,ltScale) ) 

#define IGcadPointCloudEx2_put_LinetypeScale(This,ltScale)	\
    ( (This)->lpVtbl -> put_LinetypeScale(This,ltScale) ) 

#define IGcadPointCloudEx2_get_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> get_Visible(This,bVisible) ) 

#define IGcadPointCloudEx2_put_Visible(This,bVisible)	\
    ( (This)->lpVtbl -> put_Visible(This,bVisible) ) 

#define IGcadPointCloudEx2_ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayPolar(This,NumberOfObjects,AngleToFill,CenterPoint,pArrayObjs) ) 

#define IGcadPointCloudEx2_ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs)	\
    ( (This)->lpVtbl -> ArrayRectangular(This,NumberOfRows,NumberOfColumns,NumberOfLevels,DistBetweenRows,DistBetweenCols,DistBetweenLevels,pArrayObjs) ) 

#define IGcadPointCloudEx2_Highlight(This,HighlightFlag)	\
    ( (This)->lpVtbl -> Highlight(This,HighlightFlag) ) 

#define IGcadPointCloudEx2_Copy(This,pCopyObj)	\
    ( (This)->lpVtbl -> Copy(This,pCopyObj) ) 

#define IGcadPointCloudEx2_Move(This,FromPoint,ToPoint)	\
    ( (This)->lpVtbl -> Move(This,FromPoint,ToPoint) ) 

#define IGcadPointCloudEx2_Rotate(This,BasePoint,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate(This,BasePoint,RotationAngle) ) 

#define IGcadPointCloudEx2_Rotate3D(This,Point1,Point2,RotationAngle)	\
    ( (This)->lpVtbl -> Rotate3D(This,Point1,Point2,RotationAngle) ) 

#define IGcadPointCloudEx2_Mirror(This,Point1,Point2,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror(This,Point1,Point2,pMirrorObj) ) 

#define IGcadPointCloudEx2_Mirror3D(This,Point1,Point2,point3,pMirrorObj)	\
    ( (This)->lpVtbl -> Mirror3D(This,Point1,Point2,point3,pMirrorObj) ) 

#define IGcadPointCloudEx2_ScaleEntity(This,BasePoint,ScaleFactor)	\
    ( (This)->lpVtbl -> ScaleEntity(This,BasePoint,ScaleFactor) ) 

#define IGcadPointCloudEx2_TransformBy(This,TransformationMatrix)	\
    ( (This)->lpVtbl -> TransformBy(This,TransformationMatrix) ) 

#define IGcadPointCloudEx2_Update(This)	\
    ( (This)->lpVtbl -> Update(This) ) 

#define IGcadPointCloudEx2_GetBoundingBox(This,MinPoint,MaxPoint)	\
    ( (This)->lpVtbl -> GetBoundingBox(This,MinPoint,MaxPoint) ) 

#define IGcadPointCloudEx2_IntersectWith(This,IntersectObject,option,intPoints)	\
    ( (This)->lpVtbl -> IntersectWith(This,IntersectObject,option,intPoints) ) 

#define IGcadPointCloudEx2_get_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> get_PlotStyleName(This,plotStyle) ) 

#define IGcadPointCloudEx2_put_PlotStyleName(This,plotStyle)	\
    ( (This)->lpVtbl -> put_PlotStyleName(This,plotStyle) ) 

#define IGcadPointCloudEx2_get_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> get_Lineweight(This,Lineweight) ) 

#define IGcadPointCloudEx2_put_Lineweight(This,Lineweight)	\
    ( (This)->lpVtbl -> put_Lineweight(This,Lineweight) ) 

#define IGcadPointCloudEx2_get_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> get_EntityTransparency(This,transparency) ) 

#define IGcadPointCloudEx2_put_EntityTransparency(This,transparency)	\
    ( (This)->lpVtbl -> put_EntityTransparency(This,transparency) ) 

#define IGcadPointCloudEx2_get_Hyperlinks(This,Hyperlinks)	\
    ( (This)->lpVtbl -> get_Hyperlinks(This,Hyperlinks) ) 

#define IGcadPointCloudEx2_get_Material(This,Material)	\
    ( (This)->lpVtbl -> get_Material(This,Material) ) 

#define IGcadPointCloudEx2_put_Material(This,Material)	\
    ( (This)->lpVtbl -> put_Material(This,Material) ) 

#define IGcadPointCloudEx2_get_EntityName(This,EntityName)	\
    ( (This)->lpVtbl -> get_EntityName(This,EntityName) ) 

#define IGcadPointCloudEx2_get_EntityType(This,entType)	\
    ( (This)->lpVtbl -> get_EntityType(This,entType) ) 

#define IGcadPointCloudEx2_get_Color(This,color)	\
    ( (This)->lpVtbl -> get_Color(This,color) ) 

#define IGcadPointCloudEx2_put_Color(This,color)	\
    ( (This)->lpVtbl -> put_Color(This,color) ) 


#define IGcadPointCloudEx2_get_Stylization(This,Type)	\
    ( (This)->lpVtbl -> get_Stylization(This,Type) ) 

#define IGcadPointCloudEx2_put_Stylization(This,Type)	\
    ( (This)->lpVtbl -> put_Stylization(This,Type) ) 

#define IGcadPointCloudEx2_get_ColorScheme(This,Type)	\
    ( (This)->lpVtbl -> get_ColorScheme(This,Type) ) 

#define IGcadPointCloudEx2_put_ColorScheme(This,Type)	\
    ( (This)->lpVtbl -> put_ColorScheme(This,Type) ) 

#define IGcadPointCloudEx2_get_InsertionPoint(This,EndPoint)	\
    ( (This)->lpVtbl -> get_InsertionPoint(This,EndPoint) ) 

#define IGcadPointCloudEx2_put_InsertionPoint(This,EndPoint)	\
    ( (This)->lpVtbl -> put_InsertionPoint(This,EndPoint) ) 

#define IGcadPointCloudEx2_get_Rotation(This,val)	\
    ( (This)->lpVtbl -> get_Rotation(This,val) ) 

#define IGcadPointCloudEx2_put_Rotation(This,val)	\
    ( (This)->lpVtbl -> put_Rotation(This,val) ) 

#define IGcadPointCloudEx2_get_Scale(This,val)	\
    ( (This)->lpVtbl -> get_Scale(This,val) ) 

#define IGcadPointCloudEx2_put_Scale(This,val)	\
    ( (This)->lpVtbl -> put_Scale(This,val) ) 

#define IGcadPointCloudEx2_get_Name(This,val)	\
    ( (This)->lpVtbl -> get_Name(This,val) ) 

#define IGcadPointCloudEx2_put_Name(This,val)	\
    ( (This)->lpVtbl -> put_Name(This,val) ) 

#define IGcadPointCloudEx2_get_Path(This,val)	\
    ( (This)->lpVtbl -> get_Path(This,val) ) 

#define IGcadPointCloudEx2_get_ShowCropped(This,val)	\
    ( (This)->lpVtbl -> get_ShowCropped(This,val) ) 

#define IGcadPointCloudEx2_put_ShowCropped(This,val)	\
    ( (This)->lpVtbl -> put_ShowCropped(This,val) ) 

#define IGcadPointCloudEx2_get_Locked(This,val)	\
    ( (This)->lpVtbl -> get_Locked(This,val) ) 

#define IGcadPointCloudEx2_put_Locked(This,val)	\
    ( (This)->lpVtbl -> put_Locked(This,val) ) 

#define IGcadPointCloudEx2_get_Geolocate(This,val)	\
    ( (This)->lpVtbl -> get_Geolocate(This,val) ) 

#define IGcadPointCloudEx2_put_Geolocate(This,val)	\
    ( (This)->lpVtbl -> put_Geolocate(This,val) ) 

#define IGcadPointCloudEx2_get_Unit(This,val)	\
    ( (This)->lpVtbl -> get_Unit(This,val) ) 

#define IGcadPointCloudEx2_get_UnitFactor(This,val)	\
    ( (This)->lpVtbl -> get_UnitFactor(This,val) ) 


#define IGcadPointCloudEx2_get_Segmentation(This,val)	\
    ( (This)->lpVtbl -> get_Segmentation(This,val) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadPointCloudEx2_INTERFACE_DEFINED__ */


#ifndef __IGcadSecurityParams_INTERFACE_DEFINED__
#define __IGcadSecurityParams_INTERFACE_DEFINED__

/* interface IGcadSecurityParams */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IGcadSecurityParams;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("49672BB7-795E-4413-BE28-FAD9C84F55B1")
    IGcadSecurityParams : public IDispatch
    {
    public:
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Action( 
            /* [in] */ long pOperations) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Action( 
            /* [retval][out] */ long *pOperations) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Password( 
            /* [in] */ BSTR pSecret) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Password( 
            /* [retval][out] */ BSTR *pSecret) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ProviderType( 
            /* [in] */ long pProvType) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ProviderType( 
            /* [retval][out] */ long *pProvType) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ProviderName( 
            /* [in] */ BSTR pProvName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ProviderName( 
            /* [retval][out] */ BSTR *pProvName) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Algorithm( 
            /* [in] */ long pAlgId) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Algorithm( 
            /* [retval][out] */ long *pAlgId) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyLength( 
            /* [in] */ long pKeyLen) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyLength( 
            /* [retval][out] */ long *pKeyLen) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Subject( 
            /* [in] */ BSTR pCertSubject) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Subject( 
            /* [retval][out] */ BSTR *pCertSubject) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Issuer( 
            /* [in] */ BSTR pCertIssuer) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Issuer( 
            /* [retval][out] */ BSTR *pCertIssuer) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SerialNumber( 
            /* [in] */ BSTR pSerialNum) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SerialNumber( 
            /* [retval][out] */ BSTR *pSerialNum) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Comment( 
            /* [in] */ BSTR pText) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Comment( 
            /* [retval][out] */ BSTR *pText) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TimeServer( 
            /* [in] */ BSTR pTimeServerName) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TimeServer( 
            /* [retval][out] */ BSTR *pTimeServerName) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadSecurityParamsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadSecurityParams * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadSecurityParams * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadSecurityParams * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadSecurityParams * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadSecurityParams * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadSecurityParams * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadSecurityParams * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, put_Action)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Action )( 
            IGcadSecurityParams * This,
            /* [in] */ long pOperations);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, get_Action)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Action )( 
            IGcadSecurityParams * This,
            /* [retval][out] */ long *pOperations);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, put_Password)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Password )( 
            IGcadSecurityParams * This,
            /* [in] */ BSTR pSecret);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, get_Password)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Password )( 
            IGcadSecurityParams * This,
            /* [retval][out] */ BSTR *pSecret);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, put_ProviderType)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ProviderType )( 
            IGcadSecurityParams * This,
            /* [in] */ long pProvType);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, get_ProviderType)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderType )( 
            IGcadSecurityParams * This,
            /* [retval][out] */ long *pProvType);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, put_ProviderName)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ProviderName )( 
            IGcadSecurityParams * This,
            /* [in] */ BSTR pProvName);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, get_ProviderName)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderName )( 
            IGcadSecurityParams * This,
            /* [retval][out] */ BSTR *pProvName);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, put_Algorithm)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Algorithm )( 
            IGcadSecurityParams * This,
            /* [in] */ long pAlgId);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, get_Algorithm)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Algorithm )( 
            IGcadSecurityParams * This,
            /* [retval][out] */ long *pAlgId);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, put_KeyLength)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyLength )( 
            IGcadSecurityParams * This,
            /* [in] */ long pKeyLen);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, get_KeyLength)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyLength )( 
            IGcadSecurityParams * This,
            /* [retval][out] */ long *pKeyLen);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, put_Subject)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Subject )( 
            IGcadSecurityParams * This,
            /* [in] */ BSTR pCertSubject);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, get_Subject)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Subject )( 
            IGcadSecurityParams * This,
            /* [retval][out] */ BSTR *pCertSubject);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, put_Issuer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Issuer )( 
            IGcadSecurityParams * This,
            /* [in] */ BSTR pCertIssuer);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, get_Issuer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Issuer )( 
            IGcadSecurityParams * This,
            /* [retval][out] */ BSTR *pCertIssuer);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, put_SerialNumber)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SerialNumber )( 
            IGcadSecurityParams * This,
            /* [in] */ BSTR pSerialNum);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, get_SerialNumber)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SerialNumber )( 
            IGcadSecurityParams * This,
            /* [retval][out] */ BSTR *pSerialNum);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, put_Comment)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Comment )( 
            IGcadSecurityParams * This,
            /* [in] */ BSTR pText);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, get_Comment)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Comment )( 
            IGcadSecurityParams * This,
            /* [retval][out] */ BSTR *pText);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, put_TimeServer)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TimeServer )( 
            IGcadSecurityParams * This,
            /* [in] */ BSTR pTimeServerName);
        
        DECLSPEC_XFGVIRT(IGcadSecurityParams, get_TimeServer)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TimeServer )( 
            IGcadSecurityParams * This,
            /* [retval][out] */ BSTR *pTimeServerName);
        
        END_INTERFACE
    } IGcadSecurityParamsVtbl;

    interface IGcadSecurityParams
    {
        CONST_VTBL struct IGcadSecurityParamsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadSecurityParams_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadSecurityParams_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadSecurityParams_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadSecurityParams_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadSecurityParams_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadSecurityParams_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadSecurityParams_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadSecurityParams_put_Action(This,pOperations)	\
    ( (This)->lpVtbl -> put_Action(This,pOperations) ) 

#define IGcadSecurityParams_get_Action(This,pOperations)	\
    ( (This)->lpVtbl -> get_Action(This,pOperations) ) 

#define IGcadSecurityParams_put_Password(This,pSecret)	\
    ( (This)->lpVtbl -> put_Password(This,pSecret) ) 

#define IGcadSecurityParams_get_Password(This,pSecret)	\
    ( (This)->lpVtbl -> get_Password(This,pSecret) ) 

#define IGcadSecurityParams_put_ProviderType(This,pProvType)	\
    ( (This)->lpVtbl -> put_ProviderType(This,pProvType) ) 

#define IGcadSecurityParams_get_ProviderType(This,pProvType)	\
    ( (This)->lpVtbl -> get_ProviderType(This,pProvType) ) 

#define IGcadSecurityParams_put_ProviderName(This,pProvName)	\
    ( (This)->lpVtbl -> put_ProviderName(This,pProvName) ) 

#define IGcadSecurityParams_get_ProviderName(This,pProvName)	\
    ( (This)->lpVtbl -> get_ProviderName(This,pProvName) ) 

#define IGcadSecurityParams_put_Algorithm(This,pAlgId)	\
    ( (This)->lpVtbl -> put_Algorithm(This,pAlgId) ) 

#define IGcadSecurityParams_get_Algorithm(This,pAlgId)	\
    ( (This)->lpVtbl -> get_Algorithm(This,pAlgId) ) 

#define IGcadSecurityParams_put_KeyLength(This,pKeyLen)	\
    ( (This)->lpVtbl -> put_KeyLength(This,pKeyLen) ) 

#define IGcadSecurityParams_get_KeyLength(This,pKeyLen)	\
    ( (This)->lpVtbl -> get_KeyLength(This,pKeyLen) ) 

#define IGcadSecurityParams_put_Subject(This,pCertSubject)	\
    ( (This)->lpVtbl -> put_Subject(This,pCertSubject) ) 

#define IGcadSecurityParams_get_Subject(This,pCertSubject)	\
    ( (This)->lpVtbl -> get_Subject(This,pCertSubject) ) 

#define IGcadSecurityParams_put_Issuer(This,pCertIssuer)	\
    ( (This)->lpVtbl -> put_Issuer(This,pCertIssuer) ) 

#define IGcadSecurityParams_get_Issuer(This,pCertIssuer)	\
    ( (This)->lpVtbl -> get_Issuer(This,pCertIssuer) ) 

#define IGcadSecurityParams_put_SerialNumber(This,pSerialNum)	\
    ( (This)->lpVtbl -> put_SerialNumber(This,pSerialNum) ) 

#define IGcadSecurityParams_get_SerialNumber(This,pSerialNum)	\
    ( (This)->lpVtbl -> get_SerialNumber(This,pSerialNum) ) 

#define IGcadSecurityParams_put_Comment(This,pText)	\
    ( (This)->lpVtbl -> put_Comment(This,pText) ) 

#define IGcadSecurityParams_get_Comment(This,pText)	\
    ( (This)->lpVtbl -> get_Comment(This,pText) ) 

#define IGcadSecurityParams_put_TimeServer(This,pTimeServerName)	\
    ( (This)->lpVtbl -> put_TimeServer(This,pTimeServerName) ) 

#define IGcadSecurityParams_get_TimeServer(This,pTimeServerName)	\
    ( (This)->lpVtbl -> get_TimeServer(This,pTimeServerName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadSecurityParams_INTERFACE_DEFINED__ */


#ifndef __IGcadLayerStateManager_INTERFACE_DEFINED__
#define __IGcadLayerStateManager_INTERFACE_DEFINED__

/* interface IGcadLayerStateManager */
/* [object][oleautomation][dual][helpstring][uuid] */ 


EXTERN_C const IID IID_IGcadLayerStateManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3EE989D3-1CED-4865-92CA-3896C3434C9B")
    IGcadLayerStateManager : public IDispatch
    {
    public:
        virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE SetDatabase( 
            /* [in] */ IGcadDatabase *iHostDb) = 0;
        
        virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Mask( 
            /* [in] */ BSTR bsName,
            /* [in] */ GcLayerStateMask eMask) = 0;
        
        virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Mask( 
            /* [in] */ BSTR bsName,
            /* [retval][out] */ GcLayerStateMask *eMask) = 0;
        
        virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Save( 
            /* [in] */ BSTR bsName,
            /* [in] */ GcLayerStateMask eMask) = 0;
        
        virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Restore( 
            /* [in] */ BSTR bsName) = 0;
        
        virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Delete( 
            /* [in] */ BSTR bsName) = 0;
        
        virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Rename( 
            /* [in] */ BSTR bsName,
            /* [in] */ BSTR bsNewName) = 0;
        
        virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Import( 
            /* [in] */ BSTR bsFilename) = 0;
        
        virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Export( 
            /* [in] */ BSTR bsName,
            /* [in] */ BSTR bsFilename) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcadLayerStateManagerVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcadLayerStateManager * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcadLayerStateManager * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcadLayerStateManager * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcadLayerStateManager * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcadLayerStateManager * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcadLayerStateManager * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcadLayerStateManager * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadLayerStateManager, SetDatabase)
        /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetDatabase )( 
            IGcadLayerStateManager * This,
            /* [in] */ IGcadDatabase *iHostDb);
        
        DECLSPEC_XFGVIRT(IGcadLayerStateManager, put_Mask)
        /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Mask )( 
            IGcadLayerStateManager * This,
            /* [in] */ BSTR bsName,
            /* [in] */ GcLayerStateMask eMask);
        
        DECLSPEC_XFGVIRT(IGcadLayerStateManager, get_Mask)
        /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Mask )( 
            IGcadLayerStateManager * This,
            /* [in] */ BSTR bsName,
            /* [retval][out] */ GcLayerStateMask *eMask);
        
        DECLSPEC_XFGVIRT(IGcadLayerStateManager, Save)
        /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Save )( 
            IGcadLayerStateManager * This,
            /* [in] */ BSTR bsName,
            /* [in] */ GcLayerStateMask eMask);
        
        DECLSPEC_XFGVIRT(IGcadLayerStateManager, Restore)
        /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Restore )( 
            IGcadLayerStateManager * This,
            /* [in] */ BSTR bsName);
        
        DECLSPEC_XFGVIRT(IGcadLayerStateManager, Delete)
        /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            IGcadLayerStateManager * This,
            /* [in] */ BSTR bsName);
        
        DECLSPEC_XFGVIRT(IGcadLayerStateManager, Rename)
        /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rename )( 
            IGcadLayerStateManager * This,
            /* [in] */ BSTR bsName,
            /* [in] */ BSTR bsNewName);
        
        DECLSPEC_XFGVIRT(IGcadLayerStateManager, Import)
        /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Import )( 
            IGcadLayerStateManager * This,
            /* [in] */ BSTR bsFilename);
        
        DECLSPEC_XFGVIRT(IGcadLayerStateManager, Export)
        /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Export )( 
            IGcadLayerStateManager * This,
            /* [in] */ BSTR bsName,
            /* [in] */ BSTR bsFilename);
        
        END_INTERFACE
    } IGcadLayerStateManagerVtbl;

    interface IGcadLayerStateManager
    {
        CONST_VTBL struct IGcadLayerStateManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcadLayerStateManager_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcadLayerStateManager_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcadLayerStateManager_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcadLayerStateManager_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcadLayerStateManager_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcadLayerStateManager_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcadLayerStateManager_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcadLayerStateManager_SetDatabase(This,iHostDb)	\
    ( (This)->lpVtbl -> SetDatabase(This,iHostDb) ) 

#define IGcadLayerStateManager_put_Mask(This,bsName,eMask)	\
    ( (This)->lpVtbl -> put_Mask(This,bsName,eMask) ) 

#define IGcadLayerStateManager_get_Mask(This,bsName,eMask)	\
    ( (This)->lpVtbl -> get_Mask(This,bsName,eMask) ) 

#define IGcadLayerStateManager_Save(This,bsName,eMask)	\
    ( (This)->lpVtbl -> Save(This,bsName,eMask) ) 

#define IGcadLayerStateManager_Restore(This,bsName)	\
    ( (This)->lpVtbl -> Restore(This,bsName) ) 

#define IGcadLayerStateManager_Delete(This,bsName)	\
    ( (This)->lpVtbl -> Delete(This,bsName) ) 

#define IGcadLayerStateManager_Rename(This,bsName,bsNewName)	\
    ( (This)->lpVtbl -> Rename(This,bsName,bsNewName) ) 

#define IGcadLayerStateManager_Import(This,bsFilename)	\
    ( (This)->lpVtbl -> Import(This,bsFilename) ) 

#define IGcadLayerStateManager_Export(This,bsName,bsFilename)	\
    ( (This)->lpVtbl -> Export(This,bsName,bsFilename) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcadLayerStateManager_INTERFACE_DEFINED__ */


EXTERN_C const CLSID CLSID_GcadBlock;

#ifdef __cplusplus

class DECLSPEC_UUID("60C11D4D-6F51-4A16-88CE-305C5BBC84F1")
GcadBlock;
#endif

EXTERN_C const CLSID CLSID_GcadHyperlink;

#ifdef __cplusplus

class DECLSPEC_UUID("B4F3F703-2BC5-4074-BD6E-24E5830BBD0A")
GcadHyperlink;
#endif

EXTERN_C const CLSID CLSID_GcadDynamicBlockReferenceProperty;

#ifdef __cplusplus

class DECLSPEC_UUID("114CCE6C-FDBF-4DAD-9157-7078B5664B95")
GcadDynamicBlockReferenceProperty;
#endif

EXTERN_C const CLSID CLSID_GcadAcCmColor;

#ifdef __cplusplus

class DECLSPEC_UUID("9C05E6B5-F1C9-4A65-9CA2-23A42DAE7B80")
GcadAcCmColor;
#endif

EXTERN_C const CLSID CLSID_GcadObject;

#ifdef __cplusplus

class DECLSPEC_UUID("4F1D3AB3-AAC7-4F57-BA5C-B6D5410FE1D7")
GcadObject;
#endif

EXTERN_C const CLSID CLSID_GcadXRecord;

#ifdef __cplusplus

class DECLSPEC_UUID("1E499AED-C7C7-4EE1-8FA6-AB1119B7268E")
GcadXRecord;
#endif

EXTERN_C const CLSID CLSID_GcadSortentsTable;

#ifdef __cplusplus

class DECLSPEC_UUID("79C8B818-C544-46EE-BDCF-613095E6DA50")
GcadSortentsTable;
#endif

EXTERN_C const CLSID CLSID_GcadDimStyle;

#ifdef __cplusplus

class DECLSPEC_UUID("67211CB3-E07C-4585-B521-CD8F5840BD8D")
GcadDimStyle;
#endif

EXTERN_C const CLSID CLSID_GcadLayer;

#ifdef __cplusplus

class DECLSPEC_UUID("C358F0A6-CF01-4B79-BC20-3744A6CE61CE")
GcadLayer;
#endif

EXTERN_C const CLSID CLSID_GcadLineType;

#ifdef __cplusplus

class DECLSPEC_UUID("44E0D10E-F951-4B01-BDC0-21256D036952")
GcadLineType;
#endif

EXTERN_C const CLSID CLSID_GcadMaterial;

#ifdef __cplusplus

class DECLSPEC_UUID("F55DC97F-4A3C-49E9-873C-B1F3B6F4F8D6")
GcadMaterial;
#endif

EXTERN_C const CLSID CLSID_GcadRegisteredApplication;

#ifdef __cplusplus

class DECLSPEC_UUID("CF8BF2DA-8602-41B7-8906-3C67F07994FB")
GcadRegisteredApplication;
#endif

EXTERN_C const CLSID CLSID_GcadTextStyle;

#ifdef __cplusplus

class DECLSPEC_UUID("59F48386-168C-4320-8B3D-77E8556EF9E1")
GcadTextStyle;
#endif

EXTERN_C const CLSID CLSID_GcadUCS;

#ifdef __cplusplus

class DECLSPEC_UUID("D4E3C6C4-7DAE-4D80-A98C-148C3CD66E32")
GcadUCS;
#endif

EXTERN_C const CLSID CLSID_GcadView;

#ifdef __cplusplus

class DECLSPEC_UUID("A2F794C5-9ED5-49B6-A45B-1FB659497505")
GcadView;
#endif

EXTERN_C const CLSID CLSID_GcadViewport;

#ifdef __cplusplus

class DECLSPEC_UUID("415EAAB8-7D05-4935-A6DF-25DA98FC8FB2")
GcadViewport;
#endif

EXTERN_C const CLSID CLSID_GcadGroup;

#ifdef __cplusplus

class DECLSPEC_UUID("28EA8439-1EEF-4632-812B-3A8515F93530")
GcadGroup;
#endif

EXTERN_C const CLSID CLSID_GcadPlotConfiguration;

#ifdef __cplusplus

class DECLSPEC_UUID("211BF34C-5307-4666-B82D-0719CACA809C")
GcadPlotConfiguration;
#endif

EXTERN_C const CLSID CLSID_GcadLayout;

#ifdef __cplusplus

class DECLSPEC_UUID("12664C95-EEAD-4337-A88A-971953571812")
GcadLayout;
#endif

EXTERN_C const CLSID CLSID_GcadIdPair;

#ifdef __cplusplus

class DECLSPEC_UUID("CDF39880-2237-4180-A675-1601037F78ED")
GcadIdPair;
#endif

EXTERN_C const CLSID CLSID_GcadTableStyle;

#ifdef __cplusplus

class DECLSPEC_UUID("31B9FEC5-563C-464B-B180-5B5E4B530EDD")
GcadTableStyle;
#endif

EXTERN_C const CLSID CLSID_GcadSectionSettings;

#ifdef __cplusplus

class DECLSPEC_UUID("5246A240-92AB-460B-820D-365247D9B47F")
GcadSectionSettings;
#endif

EXTERN_C const CLSID CLSID_GcadSectionTypeSettings;

#ifdef __cplusplus

class DECLSPEC_UUID("7AC3F008-2E42-43D9-8F3C-521C73269DD1")
GcadSectionTypeSettings;
#endif

EXTERN_C const CLSID CLSID_GcadMLeaderStyle;

#ifdef __cplusplus

class DECLSPEC_UUID("C3819487-144A-4471-B95E-712E3CC64BEC")
GcadMLeaderStyle;
#endif

EXTERN_C const CLSID CLSID_GcadHyperlinks;

#ifdef __cplusplus

class DECLSPEC_UUID("D1131D16-F4F4-4F50-8AEB-A6ECA83141C0")
GcadHyperlinks;
#endif

EXTERN_C const CLSID CLSID_GcadDictionary;

#ifdef __cplusplus

class DECLSPEC_UUID("F7A4E90A-DB70-4175-833C-E9F927851832")
GcadDictionary;
#endif

EXTERN_C const CLSID CLSID_GcadLayers;

#ifdef __cplusplus

class DECLSPEC_UUID("60E6BD18-62F7-4B1A-B701-CEF35537CB59")
GcadLayers;
#endif

EXTERN_C const CLSID CLSID_GcadDimStyles;

#ifdef __cplusplus

class DECLSPEC_UUID("187BD9EB-18F0-40A0-BEA1-4B53AE20A161")
GcadDimStyles;
#endif

EXTERN_C const CLSID CLSID_GcadDictionaries;

#ifdef __cplusplus

class DECLSPEC_UUID("07244103-C9ED-4EF9-BDD4-5062C58A34D4")
GcadDictionaries;
#endif

EXTERN_C const CLSID CLSID_GcadLineTypes;

#ifdef __cplusplus

class DECLSPEC_UUID("09C7B1A6-D60E-43DA-B8DA-445C72D2A022")
GcadLineTypes;
#endif

EXTERN_C const CLSID CLSID_GcadMaterials;

#ifdef __cplusplus

class DECLSPEC_UUID("C4E55BE8-77A9-4A8A-81DE-2CC03D13FF48")
GcadMaterials;
#endif

EXTERN_C const CLSID CLSID_GcadTextStyles;

#ifdef __cplusplus

class DECLSPEC_UUID("F194C083-83FC-4F35-A76F-F4C577C0689A")
GcadTextStyles;
#endif

EXTERN_C const CLSID CLSID_GcadUCSs;

#ifdef __cplusplus

class DECLSPEC_UUID("1146DF77-46C8-4F31-AB6A-8815AEE71EB7")
GcadUCSs;
#endif

EXTERN_C const CLSID CLSID_GcadRegisteredApplications;

#ifdef __cplusplus

class DECLSPEC_UUID("216D566A-A968-4E87-A8B3-9B5EB06BB19D")
GcadRegisteredApplications;
#endif

EXTERN_C const CLSID CLSID_GcadViews;

#ifdef __cplusplus

class DECLSPEC_UUID("0165E8DC-3E0B-4102-9C66-DC0228911048")
GcadViews;
#endif

EXTERN_C const CLSID CLSID_GcadViewports;

#ifdef __cplusplus

class DECLSPEC_UUID("FD6D9F4B-1812-4B43-8836-1BCEC2E28F65")
GcadViewports;
#endif

EXTERN_C const CLSID CLSID_GcadGroups;

#ifdef __cplusplus

class DECLSPEC_UUID("255F2619-FB9D-4176-BE91-D2C122537155")
GcadGroups;
#endif

EXTERN_C const CLSID CLSID_GcadBlocks;

#ifdef __cplusplus

class DECLSPEC_UUID("25F41555-CB62-4FB5-AF5A-FD50D5B99809")
GcadBlocks;
#endif

EXTERN_C const CLSID CLSID_GcadLayouts;

#ifdef __cplusplus

class DECLSPEC_UUID("C6B60202-2BEA-4ED1-9A9F-7CF91E5A295D")
GcadLayouts;
#endif

EXTERN_C const CLSID CLSID_GcadPlotConfigurations;

#ifdef __cplusplus

class DECLSPEC_UUID("0EEABD18-B6F5-4E1E-887D-0384A20CD8E9")
GcadPlotConfigurations;
#endif

EXTERN_C const CLSID CLSID_GcadEntity;

#ifdef __cplusplus

class DECLSPEC_UUID("3737DD60-3DB3-45AA-A592-49640E47A4CB")
GcadEntity;
#endif

EXTERN_C const CLSID CLSID_GcadRasterImage;

#ifdef __cplusplus

class DECLSPEC_UUID("FB5AA334-CBF1-41D1-B9E3-98F2ACB2EB83")
GcadRasterImage;
#endif

EXTERN_C const CLSID CLSID_Gcad3DFace;

#ifdef __cplusplus

class DECLSPEC_UUID("457AD5FC-1656-4606-AB8A-EF7F0215B238")
Gcad3DFace;
#endif

EXTERN_C const CLSID CLSID_Gcad3DPolyline;

#ifdef __cplusplus

class DECLSPEC_UUID("7D7FD20A-AC1D-46BC-8C49-8EBB286F681E")
Gcad3DPolyline;
#endif

EXTERN_C const CLSID CLSID_GcadRegion;

#ifdef __cplusplus

class DECLSPEC_UUID("A83EBA25-CCF0-45CE-A7C2-FEABE0D3AF59")
GcadRegion;
#endif

EXTERN_C const CLSID CLSID_Gcad3DSolid;

#ifdef __cplusplus

class DECLSPEC_UUID("C998B595-8233-4859-A51A-492A25E9EB67")
Gcad3DSolid;
#endif

EXTERN_C const CLSID CLSID_GcadArc;

#ifdef __cplusplus

class DECLSPEC_UUID("7E99A93E-D084-43FF-9311-D24A452FF851")
GcadArc;
#endif

EXTERN_C const CLSID CLSID_GcadAttribute;

#ifdef __cplusplus

class DECLSPEC_UUID("3BE70A3D-E2C4-42A6-989C-2F1E08C338D4")
GcadAttribute;
#endif

EXTERN_C const CLSID CLSID_GcadAttributeReference;

#ifdef __cplusplus

class DECLSPEC_UUID("326662C0-F9F3-4A5B-BFE5-2431F4AEF3D8")
GcadAttributeReference;
#endif

EXTERN_C const CLSID CLSID_GcadBlockReference;

#ifdef __cplusplus

class DECLSPEC_UUID("DA38CF1F-C119-4FE7-A5F9-AEC5E0C22709")
GcadBlockReference;
#endif

EXTERN_C const CLSID CLSID_GcadCircle;

#ifdef __cplusplus

class DECLSPEC_UUID("C858EE7D-1B1F-4F2E-A61F-3F4AA8C6C1BA")
GcadCircle;
#endif

EXTERN_C const CLSID CLSID_GcadEllipse;

#ifdef __cplusplus

class DECLSPEC_UUID("7F11EDC5-9468-4C9D-8749-5720C123C13F")
GcadEllipse;
#endif

EXTERN_C const CLSID CLSID_GcadHatch;

#ifdef __cplusplus

class DECLSPEC_UUID("EF74767C-CCF5-4725-935C-39E7BDB8D3B8")
GcadHatch;
#endif

EXTERN_C const CLSID CLSID_GcadLeader;

#ifdef __cplusplus

class DECLSPEC_UUID("1B4D2B5E-8406-4167-B42C-09D8136BAE47")
GcadLeader;
#endif

EXTERN_C const CLSID CLSID_GcadMLeaderLeader;

#ifdef __cplusplus

class DECLSPEC_UUID("20789A0B-9197-4A06-8715-8724555C58A7")
GcadMLeaderLeader;
#endif

EXTERN_C const CLSID CLSID_GcadMLeader;

#ifdef __cplusplus

class DECLSPEC_UUID("E6494613-3893-47A5-B0E7-B6AD41ADA6F4")
GcadMLeader;
#endif

EXTERN_C const CLSID CLSID_GcadLWPolyline;

#ifdef __cplusplus

class DECLSPEC_UUID("508C6E95-0B42-4E0B-9A4A-75CF28263857")
GcadLWPolyline;
#endif

EXTERN_C const CLSID CLSID_GcadLine;

#ifdef __cplusplus

class DECLSPEC_UUID("6ACCA2E1-E804-4519-B95F-235867C214AC")
GcadLine;
#endif

EXTERN_C const CLSID CLSID_GcadMText;

#ifdef __cplusplus

class DECLSPEC_UUID("9F58700D-4910-4463-AEEB-2406161B0490")
GcadMText;
#endif

EXTERN_C const CLSID CLSID_GcadPoint;

#ifdef __cplusplus

class DECLSPEC_UUID("5759A970-9028-4C5C-805B-AFE6D6169382")
GcadPoint;
#endif

EXTERN_C const CLSID CLSID_GcadPolyline;

#ifdef __cplusplus

class DECLSPEC_UUID("DD0ACEEC-B19B-4EC4-A5C8-C85BBE6402B2")
GcadPolyline;
#endif

EXTERN_C const CLSID CLSID_GcadPolygonMesh;

#ifdef __cplusplus

class DECLSPEC_UUID("7BAA52E2-CBFA-406B-83AB-7D0F939026D4")
GcadPolygonMesh;
#endif

EXTERN_C const CLSID CLSID_GcadRay;

#ifdef __cplusplus

class DECLSPEC_UUID("D44D6709-6C13-4C52-A360-A2943C33EEE8")
GcadRay;
#endif

EXTERN_C const CLSID CLSID_GcadShape;

#ifdef __cplusplus

class DECLSPEC_UUID("4EFE4629-C549-4346-9E5A-06F0AE788ED0")
GcadShape;
#endif

EXTERN_C const CLSID CLSID_GcadSolid;

#ifdef __cplusplus

class DECLSPEC_UUID("7EB18444-4D79-4CA8-8743-0498B64C4D01")
GcadSolid;
#endif

EXTERN_C const CLSID CLSID_GcadSpline;

#ifdef __cplusplus

class DECLSPEC_UUID("F2293592-5908-4F24-9B5D-759CDA971FC2")
GcadSpline;
#endif

EXTERN_C const CLSID CLSID_GcadText;

#ifdef __cplusplus

class DECLSPEC_UUID("12226789-EEA7-4BE8-9FD7-33513C744E3B")
GcadText;
#endif

EXTERN_C const CLSID CLSID_GcadTolerance;

#ifdef __cplusplus

class DECLSPEC_UUID("092962C2-F320-44E1-8857-C8AFE3885555")
GcadTolerance;
#endif

EXTERN_C const CLSID CLSID_GcadTrace;

#ifdef __cplusplus

class DECLSPEC_UUID("D7B6AF1E-5F8B-453C-A26E-828A2BD820CC")
GcadTrace;
#endif

EXTERN_C const CLSID CLSID_GcadXline;

#ifdef __cplusplus

class DECLSPEC_UUID("70371E06-28C5-423C-8912-78A9A6E342CB")
GcadXline;
#endif

EXTERN_C const CLSID CLSID_GcadPViewport;

#ifdef __cplusplus

class DECLSPEC_UUID("BEAF55E0-0A37-499C-B48B-DBC93CF6E29B")
GcadPViewport;
#endif

EXTERN_C const CLSID CLSID_GcadMInsertBlock;

#ifdef __cplusplus

class DECLSPEC_UUID("5B817FD8-0DDF-4283-B794-86434740C658")
GcadMInsertBlock;
#endif

EXTERN_C const CLSID CLSID_GcadPolyfaceMesh;

#ifdef __cplusplus

class DECLSPEC_UUID("A9879069-87D2-4F15-94B4-92531900783C")
GcadPolyfaceMesh;
#endif

EXTERN_C const CLSID CLSID_GcadMLine;

#ifdef __cplusplus

class DECLSPEC_UUID("CC35F7B8-1AE8-4C31-9F3D-484A44EAC286")
GcadMLine;
#endif

EXTERN_C const CLSID CLSID_GcadExternalReference;

#ifdef __cplusplus

class DECLSPEC_UUID("78F3EF1F-22D5-4BC8-A186-3CF45759F2DD")
GcadExternalReference;
#endif

EXTERN_C const CLSID CLSID_GcadComparedReference;

#ifdef __cplusplus

class DECLSPEC_UUID("5CDDE792-FAAF-47DC-8E43-199B100D88A0")
GcadComparedReference;
#endif

EXTERN_C const CLSID CLSID_GcadTable;

#ifdef __cplusplus

class DECLSPEC_UUID("92B86261-DA20-4A60-9982-05863C6D9EBE")
GcadTable;
#endif

EXTERN_C const CLSID CLSID_GcadOle;

#ifdef __cplusplus

class DECLSPEC_UUID("ABA71980-3AA9-40F5-81A7-735886F6F6FD")
GcadOle;
#endif

EXTERN_C const CLSID CLSID_GcadHelix;

#ifdef __cplusplus

class DECLSPEC_UUID("E817F271-E3BF-44E9-A481-C860D9D8CD13")
GcadHelix;
#endif

EXTERN_C const CLSID CLSID_GcadSurface;

#ifdef __cplusplus

class DECLSPEC_UUID("25D868BF-4CFD-4CB4-BC30-1A43AAF5F3E1")
GcadSurface;
#endif

EXTERN_C const CLSID CLSID_GcadPlaneSurface;

#ifdef __cplusplus

class DECLSPEC_UUID("938953B2-646A-428C-895E-203B73B1B05A")
GcadPlaneSurface;
#endif

EXTERN_C const CLSID CLSID_GcadExtrudedSurface;

#ifdef __cplusplus

class DECLSPEC_UUID("3865F4CA-2245-4517-9550-0FA5E5FC28F8")
GcadExtrudedSurface;
#endif

EXTERN_C const CLSID CLSID_GcadRevolvedSurface;

#ifdef __cplusplus

class DECLSPEC_UUID("CA2C91D1-2D7B-4195-A66C-CFB788EFEB14")
GcadRevolvedSurface;
#endif

EXTERN_C const CLSID CLSID_GcadSweptSurface;

#ifdef __cplusplus

class DECLSPEC_UUID("6997E39D-299C-45CC-95BC-A677AC0D1A62")
GcadSweptSurface;
#endif

EXTERN_C const CLSID CLSID_GcadLoftedSurface;

#ifdef __cplusplus

class DECLSPEC_UUID("3A949249-A2A7-412A-92FF-94D134EB3198")
GcadLoftedSurface;
#endif

EXTERN_C const CLSID CLSID_GcadSection;

#ifdef __cplusplus

class DECLSPEC_UUID("DCB0E3B7-B4A4-4D92-A3E8-C27BCAECBE8F")
GcadSection;
#endif

EXTERN_C const CLSID CLSID_GcadSectionManager;

#ifdef __cplusplus

class DECLSPEC_UUID("D1F1BB22-D947-40C8-90D8-B9DC99591EF7")
GcadSectionManager;
#endif

EXTERN_C const CLSID CLSID_GcadDwfUnderlay;

#ifdef __cplusplus

class DECLSPEC_UUID("B8E04FA2-2C8E-4EAE-873C-9ECC978E1628")
GcadDwfUnderlay;
#endif

EXTERN_C const CLSID CLSID_GcadDgnUnderlay;

#ifdef __cplusplus

class DECLSPEC_UUID("7A486F98-18BC-424E-9D37-CD975EC3667F")
GcadDgnUnderlay;
#endif

EXTERN_C const CLSID CLSID_GcadPdfUnderlay;

#ifdef __cplusplus

class DECLSPEC_UUID("8DF57FE7-CEDA-4730-9F54-C308ED442495")
GcadPdfUnderlay;
#endif

EXTERN_C const CLSID CLSID_GcadSubEntity;

#ifdef __cplusplus

class DECLSPEC_UUID("9D657441-AC32-4958-A37E-89FEBCC48334")
GcadSubEntity;
#endif

EXTERN_C const CLSID CLSID_GcadSubEntSolidFace;

#ifdef __cplusplus

class DECLSPEC_UUID("F8594E66-D6FD-48FD-9B5F-5E917FE71688")
GcadSubEntSolidFace;
#endif

EXTERN_C const CLSID CLSID_GcadSubEntSolidEdge;

#ifdef __cplusplus

class DECLSPEC_UUID("EE7E9EFC-E203-45B7-9E1F-6D913CD8E8EC")
GcadSubEntSolidEdge;
#endif

EXTERN_C const CLSID CLSID_GcadSubEntSolidVertex;

#ifdef __cplusplus

class DECLSPEC_UUID("EFEDD0E4-A97E-4886-8AFF-DF7FE9CBD472")
GcadSubEntSolidVertex;
#endif

EXTERN_C const CLSID CLSID_GcadSubEntSolidNode;

#ifdef __cplusplus

class DECLSPEC_UUID("7D76E2B0-91FB-40B8-BFDC-F435AB962C5E")
GcadSubEntSolidNode;
#endif

EXTERN_C const CLSID CLSID_GcadWipeout;

#ifdef __cplusplus

class DECLSPEC_UUID("9EB8238A-BE69-4698-946A-F3913BAAAF18")
GcadWipeout;
#endif

EXTERN_C const CLSID CLSID_GcadSubDMesh;

#ifdef __cplusplus

class DECLSPEC_UUID("73EBC89D-6A5A-4ED8-BC4D-2995DC879649")
GcadSubDMesh;
#endif

EXTERN_C const CLSID CLSID_GcadSubDMeshFace;

#ifdef __cplusplus

class DECLSPEC_UUID("9A95C4B1-95A4-41BA-A540-20626D74ACC4")
GcadSubDMeshFace;
#endif

EXTERN_C const CLSID CLSID_GcadSubDMeshEdge;

#ifdef __cplusplus

class DECLSPEC_UUID("EE8B1669-5AEF-49C4-9104-7733C96FCCA4")
GcadSubDMeshEdge;
#endif

EXTERN_C const CLSID CLSID_GcadSubDMeshVertex;

#ifdef __cplusplus

class DECLSPEC_UUID("C6AA5969-5AE9-49B6-B1A0-84073EB8845A")
GcadSubDMeshVertex;
#endif

EXTERN_C const CLSID CLSID_GcadNurbSurface;

#ifdef __cplusplus

class DECLSPEC_UUID("3C7846DC-43D5-44CD-B954-F941A0F85DE9")
GcadNurbSurface;
#endif

EXTERN_C const CLSID CLSID_GcadGeoPositionMarker;

#ifdef __cplusplus

class DECLSPEC_UUID("B91170B9-2698-4D7F-AF5E-A3936F475399")
GcadGeoPositionMarker;
#endif

EXTERN_C const CLSID CLSID_GcadGeomapImage;

#ifdef __cplusplus

class DECLSPEC_UUID("AA459480-C50E-415A-BDAF-5E4E9C2DBC3B")
GcadGeomapImage;
#endif

EXTERN_C const CLSID CLSID_GcadDimension;

#ifdef __cplusplus

class DECLSPEC_UUID("5D0A1B18-A59B-402A-B66B-2E10E2BDAE65")
GcadDimension;
#endif

EXTERN_C const CLSID CLSID_GcadDimAligned;

#ifdef __cplusplus

class DECLSPEC_UUID("31463489-3D64-4BC7-85B1-0A1C6F0B2ABA")
GcadDimAligned;
#endif

EXTERN_C const CLSID CLSID_GcadDimAngular;

#ifdef __cplusplus

class DECLSPEC_UUID("8CBE37D9-7079-437A-A384-635D4A74A8D3")
GcadDimAngular;
#endif

EXTERN_C const CLSID CLSID_GcadDimDiametric;

#ifdef __cplusplus

class DECLSPEC_UUID("A4E8085A-25F0-420B-A480-30ABAEF225C8")
GcadDimDiametric;
#endif

EXTERN_C const CLSID CLSID_GcadDimOrdinate;

#ifdef __cplusplus

class DECLSPEC_UUID("A6F7E215-803A-414A-A81D-6299DED292E4")
GcadDimOrdinate;
#endif

EXTERN_C const CLSID CLSID_GcadDimRadial;

#ifdef __cplusplus

class DECLSPEC_UUID("04A200E7-033D-4ECC-A9B1-806148A24763")
GcadDimRadial;
#endif

EXTERN_C const CLSID CLSID_GcadDimRotated;

#ifdef __cplusplus

class DECLSPEC_UUID("4D49A4C2-C908-4523-9E62-89B08B19CB1C")
GcadDimRotated;
#endif

EXTERN_C const CLSID CLSID_GcadDim3PointAngular;

#ifdef __cplusplus

class DECLSPEC_UUID("348090AB-ECF8-4259-BFA3-45C7A91E30F6")
GcadDim3PointAngular;
#endif

EXTERN_C const CLSID CLSID_GcadDimArcLength;

#ifdef __cplusplus

class DECLSPEC_UUID("2C817A8B-0B7D-4DE6-914A-B3A79F0665E4")
GcadDimArcLength;
#endif

EXTERN_C const CLSID CLSID_GcadDimRadialLarge;

#ifdef __cplusplus

class DECLSPEC_UUID("599C859E-76AB-4A00-8A81-2A71506A3824")
GcadDimRadialLarge;
#endif

EXTERN_C const CLSID CLSID_GcadModelSpace;

#ifdef __cplusplus

class DECLSPEC_UUID("35DF9E00-7285-40A9-BD63-D714AA0CA70F")
GcadModelSpace;
#endif

EXTERN_C const CLSID CLSID_GcadPaperSpace;

#ifdef __cplusplus

class DECLSPEC_UUID("BF0FD147-A1EA-416E-911B-9EF794738AFA")
GcadPaperSpace;
#endif

EXTERN_C const CLSID CLSID_GcadPointCloud;

#ifdef __cplusplus

class DECLSPEC_UUID("7663CAB6-0495-418B-A4E4-061EF5803B13")
GcadPointCloud;
#endif

EXTERN_C const CLSID CLSID_GcadPointCloudEx;

#ifdef __cplusplus

class DECLSPEC_UUID("028BA451-EBBA-4529-8521-DBFB95EB745C")
GcadPointCloudEx;
#endif

EXTERN_C const CLSID CLSID_GcadSummaryInfo;

#ifdef __cplusplus

class DECLSPEC_UUID("BBC325BA-407B-4755-B4D1-7A3E30581BD3")
GcadSummaryInfo;
#endif

EXTERN_C const CLSID CLSID_GcadDatabasePreferences;

#ifdef __cplusplus

class DECLSPEC_UUID("E3AC406B-D118-44DB-AC19-AA594DD65C8A")
GcadDatabasePreferences;
#endif

EXTERN_C const CLSID CLSID_GcadDatabase;

#ifdef __cplusplus

class DECLSPEC_UUID("5E90323E-2CCF-4AE9-9B6F-6603AB611048")
GcadDatabase;
#endif

EXTERN_C const CLSID CLSID_GcadSecurityParams;

#ifdef __cplusplus

class DECLSPEC_UUID("8F7C44D9-1537-4DA3-906F-103C0A0106B9")
GcadSecurityParams;
#endif

EXTERN_C const CLSID CLSID_GcadLayerStateManager;

#ifdef __cplusplus

class DECLSPEC_UUID("641D5D32-C149-418A-81C8-FD1EF9669A8F")
GcadLayerStateManager;
#endif

#ifndef __IGcAxDbDocumentEvents_INTERFACE_DEFINED__
#define __IGcAxDbDocumentEvents_INTERFACE_DEFINED__

/* interface IGcAxDbDocumentEvents */
/* [unique][oleautomation][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IGcAxDbDocumentEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0EDE6E41-2CD8-46AA-A629-0BB21F65D2FF")
    IGcAxDbDocumentEvents : public IUnknown
    {
    public:
    };
    
    
#else 	/* C style interface */

    typedef struct IGcAxDbDocumentEventsVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcAxDbDocumentEvents * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcAxDbDocumentEvents * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcAxDbDocumentEvents * This);
        
        END_INTERFACE
    } IGcAxDbDocumentEventsVtbl;

    interface IGcAxDbDocumentEvents
    {
        CONST_VTBL struct IGcAxDbDocumentEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcAxDbDocumentEvents_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcAxDbDocumentEvents_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcAxDbDocumentEvents_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcAxDbDocumentEvents_INTERFACE_DEFINED__ */


#ifndef __IGcAxDbDocument_INTERFACE_DEFINED__
#define __IGcAxDbDocument_INTERFACE_DEFINED__

/* interface IGcAxDbDocument */
/* [unique][oleautomation][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IGcAxDbDocument;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DA5B26FE-CAB2-4956-BAA7-61114C6E5139")
    IGcAxDbDocument : public IGcadDatabase
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Open( 
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT Password) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Save( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveAs( 
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT vSecurityParams) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DxfIn( 
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT LogFileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DxfOut( 
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT Precision,
            /* [optional][in] */ VARIANT SaveThumbnailImage) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ LPDISPATCH *pAppObj) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Database( 
            /* [retval][out] */ IGcadDatabase **pDatabase) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IGcAxDbDocumentVtbl
    {
        BEGIN_INTERFACE
        
        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGcAxDbDocument * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGcAxDbDocument * This);
        
        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGcAxDbDocument * This);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IGcAxDbDocument * This,
            /* [out] */ UINT *pctinfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo)
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IGcAxDbDocument * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames)
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IGcAxDbDocument * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        DECLSPEC_XFGVIRT(IDispatch, Invoke)
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IGcAxDbDocument * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_ModelSpace)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ModelSpace )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadModelSpace **pMSpace);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_PaperSpace)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PaperSpace )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadPaperSpace **pPSpace);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Blocks)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Blocks )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadBlocks **pBlocks);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, CopyObjects)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CopyObjects )( 
            IGcAxDbDocument * This,
            /* [in] */ VARIANT Objects,
            /* [optional][in] */ VARIANT Owner,
            /* [optional][out][in] */ VARIANT *IdPairs,
            /* [retval][out] */ VARIANT *pNewObjects);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Groups)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Groups )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadGroups **pGroups);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_DimStyles)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DimStyles )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadDimStyles **pDimStyles);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Layers)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layers )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadLayers **pLayers);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Linetypes)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Linetypes )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadLineTypes **pLinetypes);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Dictionaries)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Dictionaries )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadDictionaries **pDictionaries);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_RegisteredApplications)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RegisteredApplications )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadRegisteredApplications **pRegApps);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_TextStyles)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TextStyles )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadTextStyles **pTextStyles);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_UserCoordinateSystems)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserCoordinateSystems )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadUCSs **pUCSs);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Views)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Views )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadViews **pViews);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Viewports)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Viewports )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadViewports **pViewports);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_ElevationModelSpace)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ElevationModelSpace )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ double *Elevation);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, put_ElevationModelSpace)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ElevationModelSpace )( 
            IGcAxDbDocument * This,
            /* [in] */ double Elevation);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_ElevationPaperSpace)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ElevationPaperSpace )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ double *Elevation);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, put_ElevationPaperSpace)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ElevationPaperSpace )( 
            IGcAxDbDocument * This,
            /* [in] */ double Elevation);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Limits)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Limits )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ VARIANT *Limits);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, put_Limits)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Limits )( 
            IGcAxDbDocument * This,
            /* [in] */ VARIANT Limits);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, HandleToObject)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HandleToObject )( 
            IGcAxDbDocument * This,
            /* [in] */ BSTR Handle,
            /* [retval][out] */ IDispatch **pObj);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, ObjectIdToObject)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ObjectIdToObject )( 
            IGcAxDbDocument * This,
            /* [in] */ LONG_PTR ObjectID,
            /* [retval][out] */ IDispatch **pObj);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Layouts)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Layouts )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadLayouts **pLayouts);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_PlotConfigurations)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PlotConfigurations )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadPlotConfigurations **pPlotConfigs);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Preferences)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Preferences )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadDatabasePreferences **pPref);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_SummaryInfo)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SummaryInfo )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadSummaryInfo **pSummaryInfo);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_SectionManager)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SectionManager )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadSectionManager **pSecMgr);
        
        DECLSPEC_XFGVIRT(IGcadDatabase, get_Materials)
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Materials )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadMaterials **pMaterials);
        
        DECLSPEC_XFGVIRT(IGcAxDbDocument, get_Name)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ BSTR *pVal);
        
        DECLSPEC_XFGVIRT(IGcAxDbDocument, put_Name)
        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IGcAxDbDocument * This,
            /* [in] */ BSTR newVal);
        
        DECLSPEC_XFGVIRT(IGcAxDbDocument, Open)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Open )( 
            IGcAxDbDocument * This,
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT Password);
        
        DECLSPEC_XFGVIRT(IGcAxDbDocument, Save)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Save )( 
            IGcAxDbDocument * This);
        
        DECLSPEC_XFGVIRT(IGcAxDbDocument, SaveAs)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveAs )( 
            IGcAxDbDocument * This,
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT vSecurityParams);
        
        DECLSPEC_XFGVIRT(IGcAxDbDocument, DxfIn)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DxfIn )( 
            IGcAxDbDocument * This,
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT LogFileName);
        
        DECLSPEC_XFGVIRT(IGcAxDbDocument, DxfOut)
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DxfOut )( 
            IGcAxDbDocument * This,
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT Precision,
            /* [optional][in] */ VARIANT SaveThumbnailImage);
        
        DECLSPEC_XFGVIRT(IGcAxDbDocument, get_Application)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ LPDISPATCH *pAppObj);
        
        DECLSPEC_XFGVIRT(IGcAxDbDocument, get_Database)
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Database )( 
            IGcAxDbDocument * This,
            /* [retval][out] */ IGcadDatabase **pDatabase);
        
        END_INTERFACE
    } IGcAxDbDocumentVtbl;

    interface IGcAxDbDocument
    {
        CONST_VTBL struct IGcAxDbDocumentVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGcAxDbDocument_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IGcAxDbDocument_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IGcAxDbDocument_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IGcAxDbDocument_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IGcAxDbDocument_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IGcAxDbDocument_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IGcAxDbDocument_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IGcAxDbDocument_get_ModelSpace(This,pMSpace)	\
    ( (This)->lpVtbl -> get_ModelSpace(This,pMSpace) ) 

#define IGcAxDbDocument_get_PaperSpace(This,pPSpace)	\
    ( (This)->lpVtbl -> get_PaperSpace(This,pPSpace) ) 

#define IGcAxDbDocument_get_Blocks(This,pBlocks)	\
    ( (This)->lpVtbl -> get_Blocks(This,pBlocks) ) 

#define IGcAxDbDocument_CopyObjects(This,Objects,Owner,IdPairs,pNewObjects)	\
    ( (This)->lpVtbl -> CopyObjects(This,Objects,Owner,IdPairs,pNewObjects) ) 

#define IGcAxDbDocument_get_Groups(This,pGroups)	\
    ( (This)->lpVtbl -> get_Groups(This,pGroups) ) 

#define IGcAxDbDocument_get_DimStyles(This,pDimStyles)	\
    ( (This)->lpVtbl -> get_DimStyles(This,pDimStyles) ) 

#define IGcAxDbDocument_get_Layers(This,pLayers)	\
    ( (This)->lpVtbl -> get_Layers(This,pLayers) ) 

#define IGcAxDbDocument_get_Linetypes(This,pLinetypes)	\
    ( (This)->lpVtbl -> get_Linetypes(This,pLinetypes) ) 

#define IGcAxDbDocument_get_Dictionaries(This,pDictionaries)	\
    ( (This)->lpVtbl -> get_Dictionaries(This,pDictionaries) ) 

#define IGcAxDbDocument_get_RegisteredApplications(This,pRegApps)	\
    ( (This)->lpVtbl -> get_RegisteredApplications(This,pRegApps) ) 

#define IGcAxDbDocument_get_TextStyles(This,pTextStyles)	\
    ( (This)->lpVtbl -> get_TextStyles(This,pTextStyles) ) 

#define IGcAxDbDocument_get_UserCoordinateSystems(This,pUCSs)	\
    ( (This)->lpVtbl -> get_UserCoordinateSystems(This,pUCSs) ) 

#define IGcAxDbDocument_get_Views(This,pViews)	\
    ( (This)->lpVtbl -> get_Views(This,pViews) ) 

#define IGcAxDbDocument_get_Viewports(This,pViewports)	\
    ( (This)->lpVtbl -> get_Viewports(This,pViewports) ) 

#define IGcAxDbDocument_get_ElevationModelSpace(This,Elevation)	\
    ( (This)->lpVtbl -> get_ElevationModelSpace(This,Elevation) ) 

#define IGcAxDbDocument_put_ElevationModelSpace(This,Elevation)	\
    ( (This)->lpVtbl -> put_ElevationModelSpace(This,Elevation) ) 

#define IGcAxDbDocument_get_ElevationPaperSpace(This,Elevation)	\
    ( (This)->lpVtbl -> get_ElevationPaperSpace(This,Elevation) ) 

#define IGcAxDbDocument_put_ElevationPaperSpace(This,Elevation)	\
    ( (This)->lpVtbl -> put_ElevationPaperSpace(This,Elevation) ) 

#define IGcAxDbDocument_get_Limits(This,Limits)	\
    ( (This)->lpVtbl -> get_Limits(This,Limits) ) 

#define IGcAxDbDocument_put_Limits(This,Limits)	\
    ( (This)->lpVtbl -> put_Limits(This,Limits) ) 

#define IGcAxDbDocument_HandleToObject(This,Handle,pObj)	\
    ( (This)->lpVtbl -> HandleToObject(This,Handle,pObj) ) 

#define IGcAxDbDocument_ObjectIdToObject(This,ObjectID,pObj)	\
    ( (This)->lpVtbl -> ObjectIdToObject(This,ObjectID,pObj) ) 

#define IGcAxDbDocument_get_Layouts(This,pLayouts)	\
    ( (This)->lpVtbl -> get_Layouts(This,pLayouts) ) 

#define IGcAxDbDocument_get_PlotConfigurations(This,pPlotConfigs)	\
    ( (This)->lpVtbl -> get_PlotConfigurations(This,pPlotConfigs) ) 

#define IGcAxDbDocument_get_Preferences(This,pPref)	\
    ( (This)->lpVtbl -> get_Preferences(This,pPref) ) 

#define IGcAxDbDocument_get_SummaryInfo(This,pSummaryInfo)	\
    ( (This)->lpVtbl -> get_SummaryInfo(This,pSummaryInfo) ) 

#define IGcAxDbDocument_get_SectionManager(This,pSecMgr)	\
    ( (This)->lpVtbl -> get_SectionManager(This,pSecMgr) ) 

#define IGcAxDbDocument_get_Materials(This,pMaterials)	\
    ( (This)->lpVtbl -> get_Materials(This,pMaterials) ) 


#define IGcAxDbDocument_get_Name(This,pVal)	\
    ( (This)->lpVtbl -> get_Name(This,pVal) ) 

#define IGcAxDbDocument_put_Name(This,newVal)	\
    ( (This)->lpVtbl -> put_Name(This,newVal) ) 

#define IGcAxDbDocument_Open(This,FileName,Password)	\
    ( (This)->lpVtbl -> Open(This,FileName,Password) ) 

#define IGcAxDbDocument_Save(This)	\
    ( (This)->lpVtbl -> Save(This) ) 

#define IGcAxDbDocument_SaveAs(This,FileName,vSecurityParams)	\
    ( (This)->lpVtbl -> SaveAs(This,FileName,vSecurityParams) ) 

#define IGcAxDbDocument_DxfIn(This,FileName,LogFileName)	\
    ( (This)->lpVtbl -> DxfIn(This,FileName,LogFileName) ) 

#define IGcAxDbDocument_DxfOut(This,FileName,Precision,SaveThumbnailImage)	\
    ( (This)->lpVtbl -> DxfOut(This,FileName,Precision,SaveThumbnailImage) ) 

#define IGcAxDbDocument_get_Application(This,pAppObj)	\
    ( (This)->lpVtbl -> get_Application(This,pAppObj) ) 

#define IGcAxDbDocument_get_Database(This,pDatabase)	\
    ( (This)->lpVtbl -> get_Database(This,pDatabase) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IGcAxDbDocument_INTERFACE_DEFINED__ */


EXTERN_C const CLSID CLSID_GcAxDbDocument;

#ifdef __cplusplus

class DECLSPEC_UUID("D73BE0ED-BBCA-4B66-ACE6-D3BC782C0A91")
GcAxDbDocument;
#endif
#endif /* __GXDBLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


